Сессии портятся на внешнем хосте - PullRequest
1 голос
/ 14 октября 2010

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

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

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

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

Есть предложения?

1 Ответ

2 голосов
/ 14 октября 2010

Я заметил в 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

?>
...