php - session,检查管理员

时间:2012-05-01 22:42:05

标签: php

除管理员用户外,我的所有登录信息都有效。

当我尝试导航到我的admin.php时,即使我已经以管理员身份登录,我也会“必须登录”。

当我点击管理链接时,我首先去checkAdmin.php,这是下面的代码。

<?php
if($_SESSION['userEmail'] != 'admin@hotmail.com') {
    echo "<center><font face='Verdana' size='2' color=red>Must be logged in</font> <br><a href=index.php>Login Here</a></center>";
    exit;
}
?>

我做错了吗? 感谢。

我有session_start();在我的admin.php页面的顶部。 我用过print_r($ _ SESSION);得到这一行,所以它具有正确的价值。

Array ( [userEmail] => admin@hotmail.com ) 

另外,如果我添加session_start();到checkAdmin.php,当我点击进入管理页面时,屏幕就位于checkAdmin。

admin.php在顶部有

session_start();
require "checkAdmin.php";
include("db_info.php");

4 个答案:

答案 0 :(得分:3)

确保在检查会话变量之前调用了session_start()

答案 1 :(得分:2)

  • 您可能在登录过程
  • 时未设置$_SESSION['userEmail']
  • 还必须调用session_start()
  • 我会使用print_r($_SESSION);
  • 检查您的会话中的实际内容

答案 2 :(得分:1)

您是否尝试添加session_start()?在查找会话变量之前,您必须这样做。

尝试使用它:

<?php
session_start();
if($_SESSION['userEmail'] != 'admin@hotmail.com') {
    echo "<center><font face='Verdana' size='2' color=red>Must be logged in</font> <br><a href=index.php>Login Here</a></center>";
    exit;
}
?>

答案 3 :(得分:1)

使用var_dump()而不是print_r。仔细注意报告的字符串长度,因为某些字符不可见,但显然会导致字符串比较失败。

你可能有一个迷路的空白字符