2013-08-17 50 views
2

我有下面的PHP代碼:檢查會話不存在於PHP

<?php 
if (!(session_id('password')) || !(session_id('user_name'))) {  
    header("Location: ../../"); /* Redirect browser */ 
} 
?> 

如果會議不存在哪一個應該檢查,如果沒有,將用戶重定向,問題是,這個條件總是如此,即使會話確實存在,我的問題是我該如何解決它?

回答

6

嘗試$_SESSION

<?php 
    if (!isset($_SESSION) || !isset($_SESSION['password']) || !isset($_SESSION['user_name'])) { 
     header("Location: ../../"); /* Redirect browser */ 
    } 
?> 
+0

'isset'很好,但必須在每個變量上使用。 – Sven

+0

不,我們可以首先檢查會話是否存在,然後我們檢查密碼和用戶名稱 – Gautam3164

+0

如果會話中沒有密碼或用戶名,您將觸發通知。那很糟。另外,如果邏輯不存在,邏輯就是重定向。 – Sven

6

session_id()不是用來獲取會話信息。它用於更改用戶的會話ID。你所做的是將每個人的會話ID改爲字符串「user_name」。

取而代之,

if(empty($_SESSION[ 'user_name' ])) header("Location: ../../"); 

我不建議在會話中存儲用戶的密碼。沒有理由,只是放棄它才更安全。

0
  1. 檢查您是否在該頁面上啓動了會話?

使用session_start();在頁面頂部..

  1. 你如果條件只需添加:

if(isset($_session) && ...);

  1. SESSION_ID()用於生成會話編號不檢查會話變量。

所以用$_SESSION['username'] && $_SESSION['password']

  1. 在會議上通過密碼是非常鼓勵。