我编写了一个简单的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在数据库上(使用我自己的验证脚本)。谁能看到我错过的任何东西。
由于
彼得
答案 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();某处?我在你的代码示例中没有看到它。