【发布时间】:2016-11-17 09:52:16
【问题描述】:
我正在开发一个与核心 php 网站集成的 codeigniter 网站。问题是当我注销会话没有被破坏或取消设置时,如果用户单击返回按钮,他/她可以返回内部页面,也不允许其他用户登录,因为会话已经在运行。
我已经尝试使用 corephp 取消设置和销毁会话,但没有成功,请提出一些建议。
这是我的登出代码
function logout()
{
session_start();
$this->session->set_userdata('user_id','');
$this->session->set_userdata('user_name','');
$this->session->set_userdata('business_id','');
$this->session->set_userdata('email','');
$this->session->set_userdata('user_type','');
$this->session->set_userdata('activation_status','');
unset($_SESSION);
$this->session->sess_destroy();
session_destroy();
header('location:'.base_url().'Login');
}
编辑:它适用于私人浏览器,但不适用于普通浏览器
【问题讨论】:
-
在
unset($_SESSION)之前尝试打印$this->session。它显示什么? -
我不知道在 codeigniter 中破坏会话的确切功能是什么,但我认为这还可以:-
function logout(){ $this->session->sess_destroy(); session_destroy(); header('location:'.base_url().'Login'); } -
你只需要
$this->session->sess_destroy();把其余的注释掉,看看是否有效,也不需要session_start()。 -
最初只是 $this->session->sess_destroy();但它与一个核心 php 站点集成,这是主站点,这就是我应用 session_destroy() 的原因;但它仍然无法正常工作
-
你在 application/config/config.php $config['sess_use_database'] 中的配置是什么
标签: php codeigniter