【问题标题】:Is it possible to regenerate Code Igniter sessions manually?是否可以手动重新生成 Code Igniter 会话?
【发布时间】:2010-09-03 00:05:07
【问题描述】:

如上所述:是否可以手动重新生成 Code Igniter 会话?我在 PHP 会话中寻找类似于 session_regenerate_id 的东西,这样当用户进行权限提升时我可以手动调用它。

谢谢,

勒芒

【问题讨论】:

    标签: session codeigniter


    【解决方案1】:

    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();

    【讨论】:

      【解决方案2】:

      我知道这是一篇旧帖子,但我偶然发现了它,所以其他人也可能会。

      您还可以执行以下操作,这样您根本不必破解核心文件(使 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();
      

      感谢最初的答案让我走上了这条路,谢谢。

      【讨论】:

        猜你喜欢
        • 2012-03-27
        • 2012-04-04
        • 1970-01-01
        • 2012-07-23
        • 2012-07-21
        • 1970-01-01
        • 2011-12-29
        • 1970-01-01
        • 2011-05-27
        相关资源
        最近更新 更多