Переменные сессии не прилипают - PullRequest
1 голос
/ 30 июня 2011

Извините, ребята, - после двух часов поиска и комментирования и так далее, я обнаружил одно крошечное включение, которое ссылалось на перенаправленный домен.Каким-то образом это отбросило все остальное.Я до сих пор не знаю, почему, но исправив этот файл в новом домене, я смог это исправить.Еще раз, спасибо за вашу помощь и время, чтобы ответить мне!

Я довольно хорошо знаком с сессиями в PHP, но я не могу сказать, почему эти переменные сессий не прилипают к этой системе входа.иметь.Когда я вхожу в систему, меня успешно отправляют на страницу индекса, но на всех страницах с нее я получаю ответный удар на страницу входа, а также при перезагрузке страницы индекса.Я повторил сессионную переменную $ _SESSION ['login'] на странице индекса, чтобы убедиться, что ее значение точно перенесено, и оно равно там ..

... codeудален

Ответы [ 4 ]

1 голос
/ 30 июня 2011

Мое странное предположение, но обычно проблема, с которой я всегда сталкиваюсь в Apache под Linux при работе с сессиями.

Проверьте session.save_path в php.ini.Если там есть путь, которого нет в вашей системе, создайте его, например, session.save_path = "/var/lib/php/session".Я предполагаю, что PHP не может создавать файлы сеансов, и поэтому сеанс не будет сохраняться на разных страницах.Дайте папке также разрешение на запись, попробуйте 0777 (но это не лучшее разрешение, так как оно разрешено всем пользователям).НТН!

0 голосов
/ 30 июня 2011

Пожалуйста, сделайте этот шаг:

  1. используйте session_start () вверху страницы после <?php только один раз.
  2. не уничтожать сессию
  3. напишите var_dump ($ _ SESSION) в вашем тестовом индексе и запишите его в этом страница, когда вы нажимаете на нее, это перенаправить на страницу входа (вставить умереть () после него!

Я думаю, что сессия начинается в вашем тестовом индексе, но не на другой вашей странице

сообщить результат мне!

0 голосов
/ 30 июня 2011

Используйте session_start () только один раз на странице php в начале

Не используйте session_destroy (). Если вы хотите удалить переменную сеанса, используйте функцию unset. В случае, если вы хотите удалить все переменные, используйте session_unset function

Использовать session_destroy () как операцию выхода из системы

0 голосов
/ 30 июня 2011

Почему вы уничтожаете сеанс при входе в систему?Это, вероятно, причина.

session_start();
session_unregister('login');
session_write_close();
session_start();
session_destroy();

Возможно, вы просто вызовите session_start () и очистите значение сеанса 'login':

<?
$ERRBG="";
$ERRMSG="";
session_start();
$_SESSION['login'] = null;
require_once("db/mysql_connect.php");
.......
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...