在php中删除会话变量

时间:2009-06-01 06:38:33

标签: php ajax

我创建一个网页,我使用会话变量,当我点击注销我清除会话变量使用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']);
?>

请指导我找到解决方案 提前谢谢..

4 个答案:

答案 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_destroysession_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