在php中验证用户会话

时间:2009-09-06 04:48:22

标签: php

我正在创建几个页面(包括登录页面),只能由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以外的页面上我需要一种方法来确保用户登录...

2 个答案:

答案 0 :(得分:3)

在检查或设置$_SESSION['level']之前,您是否正在进行session_start()

答案 1 :(得分:1)

您需要在您希望使用Sessions的每个页面中初始化会话。将 session_start()放在页面顶部(发送标题之前)。