我一直在尝试使用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()