leosha
Старожил PHPCLub
Сессии. Какой-то бред...
Я сдаюсь.. Я [...skip...] не понимаю... Уже три часа бьюсь.
Собственно, вопрос: Почему может не сработать проверка
if (session_is_registered("valid_user")) {
},
если на самом деле данная переменная сессии точно установлена?
пояснения:
Есть файл _top.php который инклудится на всех страницах.
В этом файле присутствуют строки
<?
if (session_is_registered("valid_user")) {
echo "You are logged in as <u>$valid_user</u>.";
}
else {
echo "You are not logged in.";
}
?>
Еще раз, именно этот файл инклудится на каждой странице.
Есть require_once ("auth_check.php");
на каждой странице, требующей авторизации. Там смотрим, установлена ли переменная сессии, и если нет -
Header (Location: auth.php)
Есть файл auth.php который проверяет введенные имя, пароль, регистрит переменные сессии, в итоге редиректит броузер на index.php или на запрошенную страницу.
Все это работало как надо (да и сейчас работает), но после некоторых косметических измений скриптов, такая фигня образовалась:
auth.php проверяет имя/пароль, регистрит сессию, редирект на index.php - и ТОЛЬКО на index.php как раз и не видится что
session_is_registered("valid_user")
Хотя, это ТОЧНО так.
При переходе на любую другую страницу - пожалуйста, все отрабатывает и отображается как надо. При возврате на index.php - не видит! Опять идем на любую страницу - все ок... Но только не на index.php
И чего копать-то?
PS. Дело усугубляется тем, что на локальной машине ничего подобного не наблюдается...
Я сдаюсь.. Я [...skip...] не понимаю... Уже три часа бьюсь.
Собственно, вопрос: Почему может не сработать проверка
if (session_is_registered("valid_user")) {
},
если на самом деле данная переменная сессии точно установлена?
пояснения:
Есть файл _top.php который инклудится на всех страницах.
В этом файле присутствуют строки
<?
if (session_is_registered("valid_user")) {
echo "You are logged in as <u>$valid_user</u>.";
}
else {
echo "You are not logged in.";
}
?>
Еще раз, именно этот файл инклудится на каждой странице.
Есть require_once ("auth_check.php");
на каждой странице, требующей авторизации. Там смотрим, установлена ли переменная сессии, и если нет -
Header (Location: auth.php)
Есть файл auth.php который проверяет введенные имя, пароль, регистрит переменные сессии, в итоге редиректит броузер на index.php или на запрошенную страницу.
Все это работало как надо (да и сейчас работает), но после некоторых косметических измений скриптов, такая фигня образовалась:
auth.php проверяет имя/пароль, регистрит сессию, редирект на index.php - и ТОЛЬКО на index.php как раз и не видится что
session_is_registered("valid_user")
Хотя, это ТОЧНО так.
При переходе на любую другую страницу - пожалуйста, все отрабатывает и отображается как надо. При возврате на index.php - не видит! Опять идем на любую страницу - все ок... Но только не на index.php
И чего копать-то?
PS. Дело усугубляется тем, что на локальной машине ничего подобного не наблюдается...