我创建一个网页,我使用会话变量,当我点击注销我清除会话变量使用ajax,它在IE中工作正常,但当我使用Firefox有时会话没有被破坏,我用来清除代码会话是[当我点击退出按钮]
function floadhomepage(){
ajaxFunction();
//alert('Logout clicked');
window.location.replace("index.php");
}
function ajaxFunction()
var xmlhttp;
if (window.XMLHttpRequest){
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else if (window.ActiveXObject){
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
其他{
alert("Your browser does not support XMLHTTP!");
}
xmlhttp.onreadystatechange=function(){
}
xmlhttp.open("GET","logout.php",true);
xmlhttp.send(null);
}
logout.php文件中的包含以下代码
<?php
session_start();
session_destroy();
unset($_Session['session variable name']);
?>
请指导我找到解决方案 提前谢谢..
答案 0 :(得分:3)
尝试
session_start();
$_SESSION = array();
session_destroy();
答案 1 :(得分:0)
session_destroy()
就足够了,并且与浏览器无关,就像在服务器端一样。
答案 2 :(得分:0)
时我遇到了一些问题
$_Session['session variable name']
是array( 'first_element' => true, 'second_element' => '123456789' )
。
当我做的时候
unset( $_Session['session variable name'] )
然后
session_destroy
和session_start
并重新定义$_Session['session variable name'] = array( 'first_element' => true );
当我是var_dumping $_Session['session variable name']
时,
是array( 'first_element' => true, 'second_element' => '123456789' )
和second_element!
我不得不取消设置数组中的所有元素。
当我升级php时,这个问题消失了。现在我不记得我有哪个php版本。
答案 3 :(得分:0)
你有没有想过浏览器缓存?即使你在firefox中注销,firefox仍然可以缓存登录的页面。
尝试使用以下内容停止页面缓存:
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past