Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter中具有不同会话超时的多登录系统_Php_Codeigniter_Session - Fatal编程技术网

Php Codeigniter中具有不同会话超时的多登录系统

Php Codeigniter中具有不同会话超时的多登录系统,php,codeigniter,session,Php,Codeigniter,Session,我在codeigniter的一个项目上工作,它有3个不同的登录系统,例如管理员、副管理员、客户端。我必须为不同类型的用户设置不同的会话超时,比如管理员会话超时5分钟,副管理员会话超时15分钟,客户端会话超时30分钟。 有什么建议可以让它发生吗。。提前感谢。此代码将完成此工作 if($user['is_admin']) { $this->session->sess_expiration = '300'; //5 Minutes } else if($user['is_sub_a

我在codeigniter的一个项目上工作,它有3个不同的登录系统,例如管理员、副管理员、客户端。我必须为不同类型的用户设置不同的会话超时,比如管理员会话超时5分钟,副管理员会话超时15分钟,客户端会话超时30分钟。
有什么建议可以让它发生吗。。提前感谢。

此代码将完成此工作

if($user['is_admin']) {
    $this->session->sess_expiration = '300'; //5 Minutes
} else if($user['is_sub_admin']) {
    $this->session ->sess_expiration = '900'; //30 Minutes
} else {
    $this->session->sess_expiration = '1800'; //30 Minutes
}

只需更改在条件中获取角色的方式

此代码即可完成此任务

if($user['is_admin']) {
    $this->session->sess_expiration = '300'; //5 Minutes
} else if($user['is_sub_admin']) {
    $this->session ->sess_expiration = '900'; //30 Minutes
} else {
    $this->session->sess_expiration = '1800'; //30 Minutes
}

只需更改在条件中获取角色的方式

从db获取用户类型,然后您就可以尝试此操作

 if ($userType == 'admin')
 {
      //set session for 5 minutes
   $this->session->sess_expiration = '300'; // 5 Minutes
   $this->session->sess_expire_on_close = 'true';
 }
else if($userType == 'sub_admin'){
  //set session for 15 minutes
   $this->session->sess_expiration = '900'; // 15 Minutes
   $this->session->sess_expire_on_close = 'true';
}
else
{
  //set session for 30 minutes
  $this->session->sess_expiration = '1800'; //30 Minutes
  $this->session->sess_expire_on_close = 'true';
 }
 $data = array(
              'user_id' => $userdata->user_id,
              'first_name' => $userdata->user_firstname,
            );

  //set session and go to Dashboard or Admin Page
  $this->session->set_userdata($data);

从db中获取用户类型,然后可以尝试此操作

 if ($userType == 'admin')
 {
      //set session for 5 minutes
   $this->session->sess_expiration = '300'; // 5 Minutes
   $this->session->sess_expire_on_close = 'true';
 }
else if($userType == 'sub_admin'){
  //set session for 15 minutes
   $this->session->sess_expiration = '900'; // 15 Minutes
   $this->session->sess_expire_on_close = 'true';
}
else
{
  //set session for 30 minutes
  $this->session->sess_expiration = '1800'; //30 Minutes
  $this->session->sess_expire_on_close = 'true';
 }
 $data = array(
              'user_id' => $userdata->user_id,
              'first_name' => $userdata->user_firstname,
            );

  //set session and go to Dashboard or Admin Page
  $this->session->set_userdata($data);

有一个问题:会话将在登录时间或上次活动结束后过期谢谢。。这是一个很大的帮助。。。总是搞不清楚它是哪一个应用程序编码的:)有一个问题:会话将在登录时间或上次活动结束后过期谢谢。。这是一个很大的帮助。。。总是搞不清楚它是哪一个应用程序编码的:)