2016-03-03 2 views
0

Существует параметр конфигурации в Codeigniter для установки срока действия сеанса:Тайма-аута сеанса на основе роли пользователя в Codeigniter

$config['sess_expiration'] = 14400; //in seconds 

Но это относится ко всем типам пользовательских ролей (пользователи администратора/внешний интерфейс). Я хотел бы установить сеанс жизни для администратора и просто хочу применить вышеописанную настройку для внешних пользователей.

Как я мог это достичь?

+0

[set config variable] (https://codeigniter.com/user_guide/libraries/config.html?highlight=config%20class#CI_Config::set_item), например 'if (user == admin) {$ this-> config-> set_item ('sess_expiration', 30 * 24 * 2600)} ' –

ответ

1

Данные сеанса хранятся на сервере, и они могут быть уничтожены, если браузер закрыт. Для входа в систему вы должны использовать cookie Ex. «Запомнить меня вариант»

Если вы хотите реализовать сеанс, вам нужно сделать это вручную: пример.

if ($ROLE != 'admin' && isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) { 
    // last request was more than 30 minutes ago 
    session_unset();  // unset $_SESSION variable for the run-time 
    session_destroy(); // destroy session data in storage 
} 
$_SESSION['LAST_ACTIVITY'] = time(); // update last activity time stamp 

Я дал пример ядра PHP вы можете реализовать его в CodeIgniter с

$this->session->userdata('LAST_ACTIVITY');

1
$this->load->helper('cookie'); 
$cookie = $this->input->cookie('ci_session'); 
$this->input->set_cookie('ci_session', $cookie, '31557600'); 

Хотя я не уверен, что его хорошая идея, чтобы сделать сеанс никогда не истекает, вы, вероятно, можете установить, что cookie сеанса истекает через год в будущем, если пользователь зарегистрирован как администратор.

+0

Я хочу использовать только сеанс. Также мы можем сделать сеанс администратора до 30 дней, а также огромное количество времени. –

+0

http://stackoverflow.com/questions/10993795/how-to-change-the-value-of-a-config-item-in-the-controller-codeigniter – Taff

Смежные вопросы