Прошу помочь с сессиями в РНР

Asar
На сайте с 23.08.2004
Offline
334
727

При введении пароля на пользователя вешается сессия. Соответственно, проставляется кукис с Session Id. При переходе по страницам сайта сессия, само собою, остается.

Пару дней назад по невыясненным причинам сессия «как будто» слетает при переходе по страницам. Т.е. вводим пароль — зашли, все Ок, переходим на следующую страницу — вылетаем. При этом в коде обработки пароля ничего не менялось, а главное — соответствующий кукис остается.

В голову не приходит, куда смотреть-то хыть, чего проверить можно? У кого есть мысли — подскажите, плиз. Если нужен какой участок кода (хоть ничего и не менялось с того времени, когда все работало нормально) — скажите, какой выложить.

З.Ы. Насколько это можно было проверить, история от компьютера и пользователя не зависит.

Dreammaker
На сайте с 20.04.2006
Offline
569
#1

Asar, посмотрите не переполнена ли директория /tmp или другая на сервере в которой хранятся файлы сессий.

webrock
На сайте с 05.04.2010
Offline
261
#2

А какая длительность сессии?

Полный аудит сайтов. (/ru/forum/765361)
Asar
На сайте с 23.08.2004
Offline
334
#3

Хм. А переполнена — это что значит?..

Для чистоты эксперимента очистил полностью, зашел снова — эффект тот же. Причем в каталоге сессий новых файлов не появилось. А кукис есть.

З.Ы. Причем ситуация аналогична у двух сайтов на одном и том же самописном движке в одном аккаунте хостинга (русская и английская версия).

Asar добавил 26.10.2011 в 02:37

webrock:
А какая длительность сессии?

Дефолтная — до закрытия браузера. В куках стоит Expires: At end of session.

palladin_jedi
На сайте с 13.07.2010
Offline
71
#4
Asar:
З.Ы. Причем ситуация аналогична у двух сайтов на одном и том же самописном движке в одном аккаунте хостинга (русская и английская версия).

Скорее всего на странице где пропадает сессия не выполняется session_start() или аналог, если сайт не на PHP.

Сайт о web-разработке и прочем (http://seazo.net)||Продвижение статьями под Google (http://short.seazo.net/ght4zf) Бесплатные консультации рефералам Sape (http://www.sape.ru/r.SWfwWOblBo.php) PHP и JS скрипты на заказ, создание сайтов с нуля и на CMS.
LovelAss
На сайте с 05.06.2009
Offline
96
#5

Создайте 2 файла - 1.php и 2.php - и залейте их в корневую директорию сайта.

1.php

<?php

session_start();
$_SESSION['example'] = 'Session exists';
header("Location: 2.php");
?>

2.php

<?php

session_start();
if (isset($_SESSION['example']))
echo $_SESSION['example'];
else
echo "Session not exists";
?>

Открываем в браузере 1.php - если выводит надпись Session not exists, значит сессия не сохранилась (что скорее всего в вашем случае).

Здесь уже 2 варианта: 1) Если есть доступ к php.ini - открываем его и ищем в нём строчку session.save_path - проверяем наличие указанной директории и права на запись. 2) Если доступа к php.ini нет, пишем хостеру и просим поправить ошибку.

P.S.: Если изменяете место хранения сессий внутри скрипта, используя функцию ini_set('session.save_path', ''); - ищите целевую директорию именно там.

Asar
На сайте с 23.08.2004
Offline
334
#6

Вот бывает же... Оказалось, тупо кончилось место, и действительно некуда было сессии писать. Дошло только когда попытался загрузить файлы 1.рнр и 2рнр, а оно в нулевом размере пришло.

Спасибо всем за участие.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий