2014-01-13 58 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可能两者都丢失。