каждая страница php создает собственную сессию - PullRequest
1 голос
/ 30 ноября 2011

Проверено по всей сети и перепробованы все возможные решения, написанные о проблемах с сессиями.

У меня 3 страницы: 1-я страница читает некоторые данные из перенаправленной формы и сохраняет 4 переменные в сеансе.Здесь генерируется первый идентификатор сессии, и если я проверяю print_r ($ _ SESSION), все в порядке.

Форма с этой страницы при отправке переходит на 2-ю страницу, где данные хранятся в базе данных mysql (здесь нет манипуляций с сеансом), а затем "meta" перенаправляет на 3-ю страницу.

Здесь я пытаюсь прочитать переменные из сеанса, но вместо этого создается новый сеанс.Если я посмотрю в моем сервере TMP DIR обе сессии здесь.

Почему новый сеанс генерируется вместо чтения из первого сеанса?

  • пробное кодирование страницы: ANSI, UTF-8 с спецификацией, UTF-8 с спецификацией
  • пробовал скрипт, который был написан в руководстве по сеансу php.net

Любые другие идеи?


Код - это простая сессия, подобная этой:

1stphp

session_start();
$_SESSION['id'] = $id;

2-я страница перепробована

session_start();
print_r($_SESSION); 

вывод Array{ id -> }, поэтому только пустая переменная

3-йстраница

session_start();
$id = $_SESSION['id'];
echo $id;

с выводом ''

Ответы [ 2 ]

1 голос
/ 04 декабря 2011

Похоже, вы установили $ _SESSION ['id'] пустым с помощью

$_SESSION['id'] = $id; 

потому что $ id пуст в вашем скрипте. Удалить эту строку.

0 голосов
/ 28 января 2014

У меня была такая же проблема некоторое время, и мне было очень трудно разобраться в ней.Моя проблема была в том, что у меня был сайт, работающий некоторое время с сессиями, работающими правильно, а затем внезапно все сломалось.

Видимо, ваш session_save_path (), для меня это был / var / lib / php5/, необходимо иметь 777 разрешений chmod.Я случайно изменил его, полностью прервав сеансы.

Чтобы исправить, просто выполните sudo chmod -R 777 /var/lib/php5/ (или как там у вас session_save_path ()) в Linux.

Однако проблемы с сессиями очень странные ибыть вызвано несметным числом причин ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...