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


how to avoid auto session create in codeigniter?

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

这是我的代码:

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

因此,使用sess_destroy,我会删除会话,但当我刷新网站时,会出现一个新的会话。。

您所描述的是默认和正常的行为。请参阅《CodeIgniter用户指南》会话类章节中的"会话如何工作?"部分。上面写着:

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

这是因为会话类以前已经使用启动过

$this->load->library('session');

这里到底是什么情况。

如果你担心安全问题,不要担心。新会话不会继承上一个会话的数据。

最后,如果出于某种原因,您想销毁会话并有条件地启动它,请使用检查它是否存在

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

如手册所述:

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

Umm,很确定sess_destroy会破坏旧会话,所以刷新后当然会得到一个新会话!

编辑:

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

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