这是我解决问题的以下代码。我在登录时设置cookie并在注销时删除。在注销和登录时反之亦然。
脚本:
function readCookie(name) {
var nameEQ = escape(name) + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) === ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) === 0) return unescape(c.substring(nameEQ.length, c.length));
}
return null;
}
function setCookie(cname,cvalue,exdays)
{
var d = new Date();
d.setTime(d.getTime()+(exdays*24*60*60*1000));
var expires = "expires="+d.toGMTString();
document.cookie = cname + "=" + cvalue + "; " + expires;
}
window.setInterval(function() {
if(readCookie('loggedout')==1) {
window.location.reload();
setCookie('loggedout',2,3);
//Or whatever else you want!
}
else if(readCookie('loggedin')==1) {
window.location.reload();
setCookie('loggedin',2,3);
//Or whatever else you want!
}
},2000)
控制器:
登录:
$this->load->helper('cookie');
$cookie = array(
'name' => 'loggedin',
'value' => '1',
'expire' => '86500'
);
set_cookie($cookie);
$domain= preg_replace("/^[\w]{2,6}:\/\/([\w\d\.\-]+).*$/","$1", $this->config->slash_item('base_url'));
$path = explode($domain,base_url());
delete_cookie('loggedout');
delete_cookie('loggedout',$domain, $path[1] );
退出:
$cookie = array(
'name' => 'loggedout',
'value' => '1',
'expire' => '86500'
);
set_cookie($cookie);
$domain= preg_replace("/^[\w]{2,6}:\/\/([\w\d\.\-]+).*$/","$1", $this->config- >slash_item('base_url'));
$path = explode($domain,base_url());
delete_cookie('loggedin');
delete_cookie('loggedin','localhost', '/<!-- Your path -->/');
delete_cookie('loggedin',$domain, $path[1] );