销毁所有子域的会话

时间:2014-07-17 10:33:04

标签: php codeigniter session

主域名为.xyz.com,目前在Codeigniter框架中开发。

我已经创建了一个子域abc,用于部署在Core PHP中开发的代码。

我已成功实施SSO(单点登录)功能,方法是从Codeigniter网站为CorePHP代码(在子域上)创建一个cookie。

现在我必须在所有子域中销毁会话。

我想知道在Codeigniter注销方法中删除cookie(在Core PHP应用程序中为用户签名而创建)。但是我无法访问Codeigniter中的$_SESSION,它仍然可以在Core PHP应用程序中使用。

public function logout() {
    $this->session->sess_destroy();
    /*Some code to destroy the session of phpBB forum*/
    ....
    ....
    ....

    //deleting the cookie for Core PHP application
    if (isset($_COOKIE['nzr'])) {
        setcookie("nzr", null, 0, $this->config->item('cookie_path'), $this->config->item('cookie_domain'), 0);
    }
    setcookie('connections', null, 0, '/', $this->config->item('cookie_domain'), 0);

    session_start();
    print_r($_SESSION); // --> Here I am getting nothing (a blank array)
    die;
}

但核心PHP应用程序中仍然可以使用$_SESSION。如何从Codeigniter销毁此会话。

似乎两个会话(codeigniter和Core PHP)保存机制不同,这就是我无法破坏会话的原因。

如果我使用$this->session->userdata('user_id')打印会话user_id,我会得到输出但如果我使用$_SESSION打印print_r($_SESSION)则无法使用。

0 个答案:

没有答案