【问题标题】:Codeigniter 3.0 Session create after session destroyCodeigniter 3.0 会话销毁后创建会话
【发布时间】:2016-04-01 09:45:32
【问题描述】:

我已将我的 codeigniter 2.x 升级到 3.0,但我遇到了会话问题。我的网站支持多语言,所以即使用户从帐户注销,我也想保持语言会话。我已经实现了如下所述的注销功能。

   $lang = $this->session->userdata('language');        
   $this->session->sess_destroy();          
   $this->session->sess_create(); 
   $this->session->set_userdata(array('language' => $lang));

由于 CI 3.x sess_create() 已被删除,因此我无法在销毁会话后创建语言会话。我知道我们可以使用 cookie 助手代替会话,但如果我必须使用 cookie 代替会话,我需要进行很多更改。

【问题讨论】:

  • 注销后保持会话的目的是什么。我认为没有意义
  • 大概应该说清楚,问题是什么?
  • Abdulla 我的网站支持英语和丹麦语支持。即使用户从帐户中注销,他也应该能够以用户选择的语言浏览网站的常规页面。

标签: php codeigniter session cookies


【解决方案1】:

试试下面的代码。请注意,这里 sesssion_var 是一个变量名,您将在其中存储会话

$session = $this->session->userdata('sesssion_var');
$language_session = $session['language'];
$this->session->set_userdata('sesssion_var',$language_session);

【讨论】:

  • 谢谢维迪。我看不出问题中显示的代码有什么不同。
  • 我没有删除/删除会话。我刚刚更新了会话数组。 @Arvind kumar anugula
【解决方案2】:

使用unset_userdata('sessionnamewhichhastobedestroy') 而不是sess_destroy()

或者,如果您使用sess_destroy(),则在$lang 中设置default

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    • 2012-03-22
    相关资源
    最近更新 更多