Php 在codeigniter web应用程序中使用会话数据(角色)设置用户管理是否良好?
在使用codeigniter的web应用程序中,我存储了会话之前从数据库查询的角色数据Php 在codeigniter web应用程序中使用会话数据(角色)设置用户管理是否良好?,php,codeigniter,session,Php,Codeigniter,Session,在使用codeigniter的web应用程序中,我存储了会话之前从数据库查询的角色数据 $role = $this->session->userdata('role'); 在每个模型或控制器中,我总是使用variabel($role)来管理web中的用户行为 比如 if($role==1) { //Behaviour for admin. } else if($role==2) { //Behaviour for general user } else { //Do somethi
$role = $this->session->userdata('role');
在每个模型或控制器中,我总是使用variabel($role)来管理web中的用户行为
比如
if($role==1)
{
//Behaviour for admin.
}
else if($role==2)
{
//Behaviour for general user
}
else
{
//Do something
}
我的问题是:如果许多用户登录到我的系统,会话数据总是在没有单击“注销”之前丢失。谢谢
供您参考:
我已经将角色存储在数据库中,但为了方便起见,我将以前获得的角色值存储在会话中。为了简单的解决方案。谢谢。将数据库中的角色存储在用户表中。在我的应用程序中,我有4个角色:学生、职员、管理员、总裁 然后根据输入的用户名查询数据库 如果角色=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)
}
您不应该在会话中存储用户的角色,您应该将这些内容存储在数据库中,以便进行大多数控制。更多信息,请查看我的答案。