我正在创建几个页面(包括登录页面),只能由sysadmin访问。
在验证用户凭据后的login.php中。我设置了一个会话变量:
mysql_connect("localhost", $values['uname'], $values['password']) or
die(mysql_error());
echo "Connected to MySQL<br />";
mysql_select_db("somedb") or die (mysql_error());
session_start();
$_SESSION['level'] = 'admin';
header('Location: /admin/index.php');
然后在index.php页面中,我正在执行以下操作:
<?php
if($_SESSION['level'] !== 'admin'){
header("location:../admin/login.php");
}
?>
但它似乎不起作用。每次我被重定向到login.php(即使在通过login.php成功登录后) 这种方法有什么问题,我是怎么回事?
基本上在login.php以外的页面上我需要一种方法来确保用户登录...
答案 0 :(得分:3)
在检查或设置$_SESSION['level']
之前,您是否正在进行session_start()
?
答案 1 :(得分:1)
您需要在您希望使用Sessions的每个页面中初始化会话。将 session_start()放在页面顶部(发送标题之前)。