Можно ли вручную восстановить сеансы Code Igniter вручную? - PullRequest
1 голос
/ 03 сентября 2010

Как указано выше: можно ли вручную восстановить сеансы Code Igniter вручную?Я ищу что-то похожее на session_regenerate_id в PHP-сессиях, чтобы я мог вызвать его вручную, когда пользователь прошел повышение привилегий.

Ответы [ 2 ]

8 голосов
/ 03 сентября 2010

CI автоматически восстанавливает идентификатор сессии каждые x секунд, которые вы можете установить в своей конфигурации.

Вы можете создать новую функцию в Session.php, такую ​​же, как sess_update (), но со следующим удаленным сверху и функцией, переименованной в recycrate_id ().

// We only update the session every five minutes by default
if (($this->userdata['last_activity']+$this->sess_time_to_update) >= $this->now)
{
return;
} 

Это восстановит идентификатор сеанса, обновит users_activity и сохранит данные пользователей.Просто вызовите его с помощью $ this-> session-> Регенерат_ид ();

1 голос
/ 25 мая 2013

Я знаю, что это старый пост, но я сталкивался с ним, поэтому другие тоже могут.

Вы также можете сделать следующее, чтобы вам вообще не приходилось взламывать основные файлы (делая codeigniter).более легко модернизируемый с будущими выпусками):

//Setting this to 0 forces the sess_update method to regenerate on the next call
$this->session->sess_time_to_update=0;
//Call the sess_update method to actually regenerate the session ID
$this->session->sess_update();

Отдайте должное первоначальному ответу за то, что вывели меня по этому пути, хотя, спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...