我已经在我的笔记本电脑中设置了我的localhost并试图了解codeigniter,
我有多个应用程序在我的localhost中运行,用于不同的目的,
但我注意到,当我目前登录我的某个应用程序时,
并尝试登录到另一个应用程序,它注销其他应用程序,反之亦然。
知道为什么会这样吗?以下是我使用的注销功能。
function logout()
{
session_start();
$this->session->unset_userdata('logged_in');
session_destroy();
redirect('/', 'refresh');
}
答案 0 :(得分:0)
如果您尝试为此网站创建会话
http://localhost/site1
和
http://localhost/site2
默认情况下,会在此网址下为两个网站创建会话。
http://localhost/
因此,当您销毁子域(site1或site2)会话时。它也将清除基础会话。
检查这些链接@ mark-m建议
答案 1 :(得分:0)
你可以尝试
$this->session->sess_destroy();
它将仅取消设置CI会话,但整个localhost会话。
答案 2 :(得分:0)
最简单的解决方案是为每个应用程序设置session_name()
,它将允许它们具有单独的会话,因此它们不能相互session_destroy()
。必须在session_name()
之前调用session_start()
。
在/ site1上使用:
session_name('SESSION_SITE1');
session_start();
on / site2使用:
session_name('SESSION_SITE2');
session_start();