用户管理员状态未被记住(管理区域在一段时间后消失)

时间:2014-11-12 21:01:24

标签: php cookies

我是PHP的新手,并决定在我的网站上玩cookie。我在我的登录系统中添加了cookie,使用户在登录后可以登录1年。这样可以正常工作。

但是,我不知道如何让Cookie记住哪些用户在数据库中设置为管理员状态。有一个错误,所以登录的管理员一段时间后仍然无法查看管理区域,即使他们仍然登录。任何想法可能是什么?

登录代码:

$password=md5($_REQUEST['PASSWORD']);
        $UserName=mysql_escape_string($_REQUEST['USERNAME']);
                 $hour = TIME() + 60*60*24*30;
                setcookie("USERNAME_COOKIE", $UserName, $hour);
                setcookie("PASSWORD_COOKIE", $password, $hour); 

    $query = $mario->DB->Query("SELECT * FROM `" . DBNAME . "`.`users` WHERE `username` = '" . addslashes($_REQUEST['username']) . "' && `password` = '" . md5($_REQUEST['password']) . "'");
    if($mario->DB->NumRows($query) > 0) {
        // Success we have a user!
        $results = $mario->DB->Fetch($query);
        $_SESSION['accountLoggedIn'] = true;
        $_SESSION['username'] = $results['username'];
        $_SESSION['userID'] = $results['userID'];

        setcookie("marioruns_loggedin", true, time()+3600*24*364,"/" );  /* expire in 1 year */
        setcookie("marioruns_username", $results['username'], time()+3600*24*364,"/" );  /* expire in 1 year */
        setcookie("marioruns_userID", $results['userID'], time()+3600*24*364,"/" );  /* expire in 1 year */

配置代码:

if(isset($_COOKIE["marioruns_loggedin"]))$_SESSION['accountLoggedIn'] = true;

if(isset($_COOKIE["marioruns_username"]))$_SESSION['username'] = $_COOKIE["marioruns_username"];

if(isset($_COOKIE["marioruns_userID"]))$_SESSION['userID'] = $_COOKIE["marioruns_userID"];

在session_start();已经包括了 管理员状态不会存储在代码中的任何位置,只需在用户加载配置文件页面(管理区域所在位置)时从数据库中调用

编辑:

我觉得这可能与在个人资料页面上显示管理区域的代码有关,这行代码:

<?php if(($_SESSION['isStaff']) || ($_SESSION['isAdmin'])) {?>
--- Admin Area Code ---

也许会话已经过期了?不确定。

0 个答案:

没有答案