2009-06-01 4 views
0

Я создаю веб-страницу, в которой я использую переменные сеанса, когда я нажимаю logout, я очищаю переменные сеанса с помощью ajax, он отлично работает в IE, но когда я использую firefox, иногда сеанс не уничтожается, код я использовал для очистки сессии является [когда я нажмите кнопку выхода из системы]удалить переменную сеанса в php

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']); 
?> 

, пожалуйста, руководство меня, чтобы найти решение Спасибо заранее ..

ответ

2

Попробуйте

session_start(); 
$_SESSION = array(); 
session_destroy(); 
+0

я попробовал друга, но все же теперь у меня есть та же самая проблема. – Sakthivel

+0

Расскажите нам, что произойдет. Вы выходите из системы. Тогда как ваши значения сеанса не уничтожаются? – Shoban

0

session_destroy() в одиночку достаточно и не зависит от браузера, как это происходит на стороне сервера.

+0

ok, Но все же теперь переменная сеанса есть, когда я использую firefox. что я могу сделать, чтобы уничтожить эту переменную сеанса? – Sakthivel

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') Wi th second_element!

Мне пришлось отменить все элементы в массиве.

Эта проблема исчезла, когда я обновил php. Теперь я не могу вспомнить, какая версия php у меня была.

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 
Смежные вопросы