检查用户是否在PHP登录系统中登录

时间:2014-04-19 05:27:14

标签: php html login

我是PHP的新手,并且一直在制作PHP登录系统。它工作正常,但我想知道是否有更清晰,更有效的方法来检查用户是否已登录。目前我的代码如下所示:

session_start();
if(isset($_SESSION['username']))
{
Echo "*Whole bunch of HTML*";
}
else{
header("location:index.php");
end();
}

我想将它转到if语句检查用户是否已登录的位置,而不是让if语句检查用户是否已登录,然后在if语句中显示页面。这可能吗?

1 个答案:

答案 0 :(得分:0)

你做得还可以。但这是我为我的代码所做的事情:

function checklogin() {
    if (!$this->isLoggedIn())
        return false;
    else
        return true;
}


function isLoggedIn() {
    if (isset($_SESSION['user_id']) && isset($_SESSION['user_email'])) {

        if( !$this->isTimeOut() )
            return false;

        $where = array(
            'id' => $_SESSION['user_id'],
            'email' => $_SESSION['user_email']
        );

        //this is database class method
        $value['data'] = $dataBaseClass->login_access($where);

        if ($value['data'] != FALSE && $_SESSION['user_id'] == $value['data']->id && $_SESSION['user_email'] == $value['data']->email) {

            return true;
        }
        /*
          username or userlevel not exist or s_ecryption session invalid
          User not logged in.
         */
        else
            return false;
    }
    /**
     * cookie check for user login || you can escape this
     */
        else if (isset($_COOKIE['cookie_key']) && $_COOKIE['cookie_key'] != '') {

        $cookie_key = $_COOKIE['cookie_key'];
        $where = array(
            'cookie_key' => $cookie_key
        );
        $user_data = $databaseClass->login_access($where);

        if (!empty($user_data)) {
            $_SESSION['user_id'] = $user_data->id;
            $_SESSION['user_email'] = $user_data->email;

            return true;
        }
    } else {
        return false;
    }
}

创建一个库/函数文件,编写上面的代码,将该文件包含在您需要的类文件中并调用该函数。

希望这有帮助。

相关问题