PHP - 页面(重新)加载后检查用户凭据

标签 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()函数会在每次页面重新加载时检查数据库, session 信息是否正确。

我担心的是,我觉得有更好的方法来编写上面的代码,但是我不知道如何完成!我正在寻找更好的方法来在用户导航网站(并登录)时编写登录检查。

感谢您的帮助(提前!)

最佳答案

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

...

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

...

关于PHP - 页面(重新)加载后检查用户凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29822780/

相关文章:

php - %s 在这里是什么意思?

javascript - 如何在 mysql 查询中重复使用一个参数 (NODE.js)

php - 将这一团乱麻的 PHP 变成一个 MySQL 查询

php - WordPress循环: Wrap 3 search results in a row

php - 将 IP 地址与 IP 范围匹配?

php - 具有 concats 和 Joins 的 SQL 在 MySQL 5.1 中工作正常,但在 5.5 上返回 NULL

php - 是否有某种方法可以保证 memcached 中对象的持久性?

php - 如何从 laravel Controller 打印变量?

mysql - 查找数据库中具有包含特定值的列的所有表名,MySQL

php - MySQL 表结构未在 Doctrine ORM 实体中更新