2013-07-24 3 views
2

Я готов обновить свой сайт, а в новом обновлении требуется новая переменная session user_level. Мне интересно, есть ли серверная сторона в любом случае, я могу закончить все сеансы, не имея на самом деле никакого кода. Если нет, я намерен проверить, установлена ​​ли переменная или нет, и я уничтожу сессию, заставляя пользователя перегружать. так что-то вроде этого ..как можно удалить всю информацию о сеансе?

if(!$this->session->userdata['user_level']) 
{ 
    $this->session->sess_destroy(); 
} 
+0

Я лично сделал бы это с таким подходом, так как это позволит вам делать что-то вроде предупреждения пользователя о необходимости повторного входа в систему из-за обновления сайта. Если вы использовали альтернативный подход, например, просто удалить все хранилище сеансов (в файлах или базе данных), вы не сможете дать более удобный переход. –

+0

Как удалить хранилище сеансов из любопытства? Кроме того, мой сайт невелик. только пользователи 65ish (даже если я запустил его сегодня), поэтому я не думаю, что это было бы так плохо. – user2605381

ответ

2

userdata является function не array Read Session docs

Попробуйте это,

if(!$this->session->userdata('user_level')) 
{ 
    $this->session->userdata = array(); 
    $this->session->sess_destroy(); 
} 

Если вы хотите unset a single session variable затем использовать его как,

$this->session->unset_userdata('user_level');// to remove user_level from session 

Прочитано http://ellislab.com/forums/viewthread/195025/

+0

Проблема не в деле удаления сеанса. он уверен, что каждый пользователь имеет новую переменную, но я не верю, что есть какой-либо способ автоматически удалить все сеансы, которые система начала правильно? – user2605381

+0

@ user2605381 проверить выше, я внес изменения в него. –

+0

ничего себе. я обращался к нему как к массиву во всем моем коде ..: \ Почему он все еще работает как массив? – user2605381

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