PHP登录基于用户的“角色”

时间:2017-06-18 10:31:07

标签: php class login

我的代码使用登录类进行身份验证。我需要根据用户的登录信息(角色)获得一个变量,该变量将管理员用户定向到一个单独的页面。 在这里,我尝试在我的登录类中设置$role变量:

private function getUserRole($role)
{
    if ($this->databaseConnection()) {
        $query_user = $this->db_connection->prepare('SELECT role FROM users WHERE user_name = :user_name');
        $query_user->bindValue(':role', $role, PDO::PARAM_STR);
        $query_user->execute();
        return $query_user->fetchObject();
    } else {
        return false;
    }
}

在我的index.php页面上,我试图引导登录流量:

require_once('classes/Login.php');
$login = new Login();
if ($login->isUserLoggedIn() == true and $login->getUserRole() == 'admin'){
    include("views/logged_in.html");
} else {
    include("views/not_logged_in.php");
}

我是使用登录类的新手,我正在处理现有代码,因此我们将非常感谢任何帮助或建议。

1 个答案:

答案 0 :(得分:0)

您需要传递user_name而不是role

private function getUserRole($user_name)
{
    if ($this->databaseConnection()) {
        $query_user = $this->db_connection->prepare('SELECT role FROM users WHERE user_name = :user_name');
        $query_user->bindValue(':user_name', $user_name, PDO::PARAM_STR);
        $query_user->execute();

        return $query_user->fetchObject();
    } else {
        return false;
    }
}

<强>的index.php

require_once('classes/Login.php');

$login = new Login();

if ($login->isUserLoggedIn() == true and $login->getUserRole($user_name) == 'admin') {
    include("views/logged_in.html");
} else {
    include("views/not_logged_in.php");
}