codeigniter在同一浏览器上注销另一个应用程序

时间:2014-08-02 07:08:15

标签: php codeigniter

我已经在我的笔记本电脑中设置了我的localhost并试图了解codeigniter,   我有多个应用程序在我的localhost中运行,用于不同的目的,
  但我注意到,当我目前登录我的某个应用程序时,   并尝试登录到另一个应用程序,它注销其他应用程序,反之亦然。

知道为什么会这样吗?以下是我使用的注销功能。

    function logout()
{
    session_start();
    $this->session->unset_userdata('logged_in');
    session_destroy();
    redirect('/', 'refresh'); 
}

3 个答案:

答案 0 :(得分:0)

如果您尝试为此网站创建会话

http://localhost/site1

http://localhost/site2

默认情况下,会在此网址下为两个网站创建会话。

http://localhost/

因此,当您销毁子域(site1或site2)会话时。它也将清除基础会话。

检查这些链接@ mark-m建议

Distinguish between two sessions in PHP

multiple php sessions

答案 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();