PHP - 在页面重新加载

时间:2015-04-23 11:58:01

标签: php mysql

如果用户登录我的网站,则会进行相关检查以进行登录,包括创建$ _SESSION,但是当他们浏览网站时,显然会检查他们是否在加载导航到的下一页时仍然登录

目前,此检查的代码为:

$users = blueFactory::create('blueUsers',$db, $core);

session_start();
if(isset($_SESSION['login']['username']) && isset($_SESSION['login']['hash']))
{
    $userN = $_SESSION['login']['username'];
    $userH = $_SESSION['login']['hash'];
    if($users->CheckUser($userN, $userH) > 0)
    {
        define('LOGGED_IN',true);
        define('USER_ID',$users->Name2id($userN));
        define('USER_NAME',$users->GrabUserVar(USER_ID,"username"));
        define('USER_HASH',$userH);
    }
    else {
        define('LOGGED_IN',false);
        define('USER_ID',0);
        define('USER_NAME','Guest');
        define('USER_HASH',0);
        session_destroy();
    }
}
else {
    define('LOGGED_IN',false);
    define('USER_ID',0);
    define('USER_NAME','Guest');
    define('USER_HASH',0);
}

$ users-> checkUser()函数将在每次重新加载页面时检查数据库,无论会话信息是否正确。

我担心的是,我觉得有更好的方法来编写上面的代码,但是我不知道怎么做!我正在寻找更好的方法来在用户浏览网站时编写登录检查(并且已登录)。

感谢您的帮助(提前!)

1 个答案:

答案 0 :(得分:0)

验证您的CONSTANT是否已定义,例如:

...

if (defined('LOGGED_IN')) { // exists?
   if (!LOGGED_IN) { // if false, keep doing ..
... code and more code ...
}

...