【问题标题】:unset_userdata (codeigniter) is not working / Is resetting itself?unset_userdata(codeigniter)不工作/正在重置自己?
【发布时间】:2011-12-24 05:56:54
【问题描述】:

我在 codeigniter 中有一个 account_activation 控制器,它会更改用户数据库中的值,并且应该取消设置会话并销毁我的 ci_sessions 数据库中的会话。

看起来像这样

function account_activation (){

  //blablabla database stuff

  $the_results['message'] = "Dein Account wurde erfolgreich aktiviert";
  $this->session->sess_destroy();
  $this->layout->render_page('/Startseite/aktivierung', $the_results);
}

我被重定向到 Startseite/aktiverung/ 并且可以看到我的用户数据未设置,并且会话被破坏(我在标题中打印我的用户数据/会话以进行监控)。 如果我现在点击主页按钮,我所有的用户数据都回来了,例如 system_login == true 虽然我看到它在前一页上消失了。

我为此工作了几个小时,我真的很沮丧..请告诉我我在这方面犯了一些逻辑错误;)

问候,菲利普

【问题讨论】:

    标签: php codeigniter frameworks


    【解决方案1】:

    我多次听说有些人遇到过类似的问题。他们为解决这个问题所做的就是将会话数据设置为空值。

    喜欢

    function account_activation (){
    
      //blablabla database stuff
    
      $the_results['message'] = "Dein Account wurde erfolgreich aktiviert";
      $this->session->set_userdata('user_id', 0);
      $this->layout->render_page('/Startseite/aktivierung', $the_results);
    }
    

    然后为每个页面加载验证用户。

    【讨论】:

    • 嗨 repo,是的,我也尝试过,但发生了完全相同的事情。我看到所有用户数据都未设置或为 0,并且只要我单击主页按钮或任何其他页面而不是当前页面,它就会全部返回.. :(
    • 在取消设置会话数据后尝试执行 redirect() - 这就是我确保会话消失的方法。
    • 我太傻了..我在两个不同的域(domainone.com / domain-one.com)上工作,当然,如果 domainone.com 的会话被删除,它仍然对域有效- one.com -.-
    • 我可以确认使用空值重置用户数据有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 2015-12-21
    相关资源
    最近更新 更多