所以我试图做我认为不可能的事情。我想在浏览器或标签页上关闭所有会话cookie,所以我提出了一个解决方案,我只是遇到了JavaScript格式的小问题。这必须是基于时间的,因为当下一页重新加载时,它将使计时器到期一年,以便我网站上的其他页面也不会删除cookie。因此,在他们离开网站或关闭标签之前,Cookie不会过期。
所以JavaScript开头是这样的:
var today = new Date();
today.setSeconds(today.getSeconds() + 5);
alert(today);
window.onunload = function(){
document.cookie = 'PHPSESSID=; expires=' + today;
};
所以当我运行它时,它无法识别今天的变量,或者我今天没有正确格式化。
感谢所有帮助!
答案 0 :(得分:1)
today
变量超出范围。您需要在卸载时创建它,或者在函数()中传递它。
window.onunload = function(today){
document.cookie = 'PHPSESSID=; expires=' + today.getTime();
};
OR
window.onunload = function(){
var today = new Date();
today.setSeconds(today.getSeconds() + 5);
document.cookie = 'PHPSESSID=; expires=' + today.getTime();
};
答案 1 :(得分:0)
所以我决定用一个小脚本销毁会话cookie。
这就是我想出的。
window.onunload = function(){
var today = new Date();
today.setSeconds(today.getSeconds() + 2);
var today1= today.toUTCString()
document.cookie =
'PHPSESSID=<?php echo $sesid; ?>; expires='+ today1 +'; path=/'
alert(document.cookie);
};
所以这会将destroy设置为2秒,但是如果你导航到我网站上的任何其他页面,它将首先运行。
var today2 = new Date();
today2.setSeconds(today2.getSeconds() + 10000);
var today3= today2.toUTCString()
document.cookie =
'PHPSESSID=<?php echo $sesid; ?>; expires='+ today3 +'; path=/';
这样,只要您离开页面,就可以销毁会话。