如何避免在codeigniter中创建自动会话?

时间:2012-07-10 16:34:49

标签: php codeigniter session

我一直在尝试使用Codeigniter处理会话,但每次刷新浏览器时我都会发现创建了一个新会话......这没有任何意义。我尝试删除所有会话然后我得到一个新的,有没有人看到这个错误??

这是我的代码:

$this->load->library('session');
print_r  ($this->session->all_userdata());
$this->session->sess_destroy();

所以,使用sess_destroy我会删除会话,但是当我刷新网站时会有新的会话..

2 个答案:

答案 0 :(得分:2)

嗯,非常肯定sess_destroy会破坏旧会话,所以当然你会刷新一个新的会话!

编辑:

在Session.php快速达到峰值后确认

/**
 * Destroy the current session
 *
 * @access  public
 * @return  void
 */
function sess_destroy()

答案 1 :(得分:2)

您描述的是默认和正常行为。请参阅“会话如何工作?” CodeIgniter用户指南的Session Class章节中的部分。它说:

  

如果会话数据存在(或者已过期),则会创建一个新会话并保存在cookie中。

这是使用

之前启动的Session类
$this->load->library('session');

这是什么情况。

如果您担心安全问题,请不要担心。新会议不会延续以前会议的数据。

最后,如果由于某种原因你想破坏会话并有条件地启动它,请检查它是否存在:

if($this->session->userdata('username') === FALSE )

如手册中所述:

  

注意:如果您尝试访问的项目不存在,则该函数返回FALSE(布尔值)。