使用会话数据(角色)在codeigniter Web应用程序中设置用户管理是否合适?

时间:2013-04-17 13:07:03

标签: php codeigniter session

在我使用codeigniter的web应用程序中,我在会话之前存储了我从数据库查询的角色数据。

$role = $this->session->userdata('role');

在每个模型或控制器中,我总是使用此变量($ role)来管理我的网络中的用户行为。

if($role==1)
{
//Behaviour for admin.
}
else if($role==2)
{
//Behaviour for general user
}
else
{
//Do something
}

我的问题:如果很多用户登录我的系统,会话数据总是会丢失,而不会在之前点击退出。感谢。

获取您的信息: 我已将角色存储在数据库中,但为了方便我之前获得的角色值,我将其存储在会话中。简单的解决方案。感谢。

1 个答案:

答案 0 :(得分:0)

将角色存储在users表中的数据库中。我在我的申请学生,工作人员,管理员,总统中有4个角色。

然后,您将使用输入的用户名查询数据库,

如果role = 1,则发送到相应的页面。

有点像这样:

$sql = "SELECT * FROM users WHERE username = :username AND role = 1";
$role = $this->db->conn_id->prepare($sql);
$role->bindParam(':username', $username);
$role->execute();

if ($role) {
    if ($role->rowCount() == 1) {
        return TRUE;
    }
}

然后在控制器中执行

if ($this->yourmodel->yourfunction($yourvariable)) { // Checks if the query above returns TRUE!
    redirect(to what ever page you want)
}