удалить переменную сессии в php - PullRequest
1 голос
/ 01 июня 2009

я создаю веб-страницу, в которой я использую переменные сеанса, когда я нажимаю кнопку выхода из системы, я очищаю переменные сеанса, используя 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");
}

else {

  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 ]

3 голосов
/ 01 июня 2009

Попробуйте

session_start();
$_SESSION = array();
session_destroy();
0 голосов
/ 01 июня 2009

Вы когда-нибудь задумывались о кэшировании в браузере? Даже если вы выйдете из 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
0 голосов
/ 01 июня 2009

У меня была какая-то проблема, когда

$_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.

0 голосов
/ 01 июня 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...