Сессии перепутались на внешнем хосте

Проблема звучит так: вход в систему с использованием сеансов отлично работает на моем локальном хосте, но когда ТОЧНО те же самые файлы загружаются на мой хост (hostgator), сеансы не работают или перепутались. Также функция выхода из системы не работает на хосте.

Я проверил, и на каждой странице есть session_start(); внутри него.

Сессия не уничтожается, даже если мой logout.php выглядит так:

<?php
session_start(); 
$_SESSION = array();
session_unset();
session_destroy();
header("location:index.php");
exit();
?>

Какие-либо предложения?


person XCS    schedule 14.10.2010    source источник
comment
Убедитесь, что конфигурация сеанса одинакова на обоих серверах.   -  person Gumbo    schedule 14.10.2010
comment
Сеансы работают нормально на одном веб-сервере, но теперь вы находитесь на веб-ферме, которая не использует закрепленные сеансы?   -  person DOK    schedule 14.10.2010
comment
Запутался: я вхожу в одну учетную запись, после выхода из системы и входа в другую учетную запись я вхожу в первую учетную запись вместо текущей.   -  person XCS    schedule 14.10.2010


Ответы (1)


Я заметил в Firefox с Firebug, что все ваши страницы кэшируются. Ваш сеанс работает нормально, но ваша страница кэшируется, что делает вход и выход из системы довольно (испорченным).

Отключите кэширование HTTP для ваших динамических страниц.

См. вывод Firebug:

Заголовки ответа

HTTP/1.1 304 Not Modified
Date: Thu, 14 Oct 2010 13:16:50 GMT
Server: Apache mod_fcgid/2.3.5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
Connection: Keep-Alive
Keep-Alive: timeout=5, max=100
Expires: Thu, 14 Oct 2010 16:16:50 GMT
Cache-Control: public, max-age=10800

Заголовки запроса

GET / HTTP/1.1
Host: www.piataterenuri.info
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Cookie: PHPSESSID=55aea3f792334052dc673f85feb0b54a
If-Modified-Since: Wed, 13 Oct 2010 13:47:53 GMT
Cache-Control: max-age=0

В руководстве по PHP уже есть пример отключения кеширования:

http://php.net/manual/en/function.header.php

<?php

header("Cache-Control: no-cache, must-revalidate"); 
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past

?>
person mauris    schedule 14.10.2010
comment
Так как мне сделать это на всех страницах? Я меняю значения кэширования заголовка или есть какая-то опция в php.ini хоста? - person XCS; 14.10.2010
comment
Я помещу это в свой phps и посмотрю, смогу ли я выйти из системы... РЕДАКТИРОВАТЬ: похоже, это все еще не исправлено.... - person XCS; 14.10.2010