【问题标题】:codeigniter logs out another application on same browsercodeigniter 在同一浏览器上注销另一个应用程序
【发布时间】:2014-08-02 07:08:14
【问题描述】:

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

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

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

【问题讨论】:

标签: php codeigniter


【解决方案1】:

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

http://localhost/site1

http://localhost/site2

默认情况下,将在此 url 下为两个站点创建会话。

http://localhost/

因此,当您销毁子域(站点 1 或站点 2)会话时。它也会清除基础会话。

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

Distinguish between two sessions in PHP

multiple php sessions

【讨论】:

    【解决方案2】:

    你可以试试

    $this->session->sess_destroy();
    

    它只会取消设置 CI 会话,但会取消整个 localhost 会话。

    【讨论】:

      【解决方案3】:

      最简单的解决方案是为每个应用程序设置一个session_name(),这将允许他们拥有单独的会话,因此他们不能互相session_destroy()session_name() 必须在 session_start() 之前调用。

      在 /site1 上使用:

      session_name('SESSION_SITE1');
      session_start();
      

      在 /site2 上使用:

      session_name('SESSION_SITE2');
      session_start();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-02
        • 1970-01-01
        • 2012-03-08
        • 1970-01-01
        • 1970-01-01
        • 2016-10-16
        相关资源
        最近更新 更多