PHP没有启动会话?

时间:2011-11-28 02:09:48

标签: php mysql session

我编写了一个简单的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在数据库上(使用我自己的验证脚本)。谁能看到我错过的任何东西。

由于

彼得

3 个答案:

答案 0 :(得分: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;

答案 1 :(得分:5)

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

答案 2 :(得分:1)

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