2014-01-13 82 views
-5

我正在創建登錄腳本。標題都可以工作,但顯然$ _SESSION保持空白。有誰知道這可能是爲什麼?

$db = dbConnection(); 

// username and password sent from form 
$myusername= $_POST['myusername']; 
$mypassword= md5($_POST['mypassword']); 

// To protect MySQL injection (more detail about MySQL injection) 
$myusername = stripslashes($myusername); 
$mypassword = stripslashes($mypassword); 
$myusername = mysql_real_escape_string($myusername); 
$mypassword = mysql_real_escape_string($mypassword); 
$sql="SELECT * FROM " .$members. " WHERE BINARY `username`= '".$myusername."' and BINARY `password`= '".$mypassword."'"; 
$result = $db->query($sql); 

// Mysql_num_row is counting table row 
$count=$result->rowCount(); 

// Fetch this accounts row from db 
$row = $result->fetch(PDO::FETCH_ASSOC); 

// If result matched $myusername and $mypassword, table row must be 1 row 
if($count==1){ 

$_SESSION['username'] = $myusername; 
$_SESSION['privileges'] = $row['privileges']; 
$_SESSION['email'] = $row['email']; 
header("location:index.php"); 

}

+2

假設你有'session_start();'隱藏在某處? –

回答

4

在你的腳本的頂部添加session_start()

+0

10次中的9次,OP轉過來說「這是在我的連接文件中」。我從不回答這些問題。它們屬於「C.O.W.」代碼類別。 –

+0

session_start();在index.php中它的頭部被調用。但是應該在設置$ _SESSION變量之前調用它。感謝你的回答。 – aardnoot

+0

在我寫這篇文章之前不到3秒,OP就出現了,並且只寫了我所說的內容。我就知道。 –

1

這裏有兩種可能性session_start();未被使用或者$ count不等於1可能兩者都丟失。