主域名为.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)
则无法使用。