2011-11-28 95 views
2

我写这将启动一个会话的simplte PHP登录脚本:PHP没有开始会话?

//Lets start our session 
//Create our session 
$_SESSION['token'] = md5($user['salt'].$user['user_id'].$user['username']); 
$_SESSION['id'] = $user['user_id']; 
$_SESSION['username'] = $user['username']; 
header('Location: index.php'); 
die(); 

而且对索引文件我有这样的代码:

if(array_key_exists('id', $_SESSION) && array_key_exists('username', $_SESSION)): 
    echo 'Welcome user'; 
else: 
    include 'login.php'; 
endif; 

每次在它的用户登录不启动会话。我确保密码和usename在数据库上(使用我自己的验证脚本)。任何人都可以看到我缺少的东西。

感谢

彼得

+1

你的session_start()在哪里? –

+0

你在做 \t session_start(); –

+0

你在哪里开始会议? – Drewdin

回答

7

你错过了启动会议的最重要的部分:session_start()

session_start(); 
$_SESSION['token'] = md5($user['salt'].$user['user_id'].$user['username']); 
$_SESSION['id'] = $user['user_id']; 
$_SESSION['username'] = $user['username']; 
header('Location: index.php'); 
die(); 

和索引页面上还有:

session_start(); 
if(array_key_exists('id', $_SESSION) && array_key_exists('username', $_SESSION)): 
    echo 'Welcome user'; 
else: 
    include 'login.php'; 
endif; 
+0

废话!当然,这就是为什么我应该在上午2点喝啤酒的原因!我无法相信我忘了session_start();功能!感谢队友:) –

+0

它发生了很多次,通常我会在头文件中开始会话,但在一些文件中不需要包含头,所以我也做了同样的错误哈哈:D –

5

添加session_start();在您所在的所有文件的顶部使用会话。

+0

废话!当然,这就是为什么我应该在上午2点喝啤酒的原因!我无法相信我忘了session_start();功能!谢了哥们 :) –

1

你有你的session_start();某处?我在你的代码示例中没有看到它。