【发布时间】:2010-09-03 00:05:07
【问题描述】:
如上所述:是否可以手动重新生成 Code Igniter 会话?我在 PHP 会话中寻找类似于 session_regenerate_id 的东西,这样当用户进行权限提升时我可以手动调用它。
谢谢,
勒芒
【问题讨论】:
标签: session codeigniter
如上所述:是否可以手动重新生成 Code Igniter 会话?我在 PHP 会话中寻找类似于 session_regenerate_id 的东西,这样当用户进行权限提升时我可以手动调用它。
谢谢,
勒芒
【问题讨论】:
标签: session codeigniter
CI 每 x 秒自动重新生成会话 ID,您可以在配置中进行设置。
您可以在 Session.php 中创建一个与 sess_update() 相同的新函数,但从顶部删除以下 并将该函数重命名为 regenerate_id()。
// We only update the session every five minutes by default
if (($this->userdata['last_activity']+$this->sess_time_to_update) >= $this->now)
{
return;
}
这将重新生成会话 ID、更新 users_activity 并保留用户数据。只需调用它 $this->session->regenerate_id();
【讨论】:
我知道这是一篇旧帖子,但我偶然发现了它,所以其他人也可能会。
您还可以执行以下操作,这样您根本不必破解核心文件(使 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();
感谢最初的答案让我走上了这条路,谢谢。
【讨论】: