Переменные сессии PHP не сохранены - PullRequest
7 голосов
/ 19 марта 2009

Я не могу использовать переменные сеанса на странице, отличной от той, на которой они установлены, IOW они действуют как переменные не сеанса. Я нашел похожий вопрос, опубликованный на полдюжине других подобных форумов, но ответ в тех других случаях всегда оказывается неприменимым.

Вот мои файлы:

sess1.php

<?php
session_start();

session_register("userid");
session_register("textvar");

$_SESSION['userid'] = 10333 ;
$_SESSION['textvar'] = TextVariable ;

echo "<p>User ID is: " . $_SESSION['userid'] . "</p>" ;
echo "<p>Another variable is: " . $_SESSION['textvar'] . "</p>" ;
?>
<p>Go to the <a href="sess2.php">next page</a>.</p>

и, sess2.php

<?php
session_start();

echo "<p>The userid session variable is: " . $_SESSION['userid'] . "</p>";
echo "<p>The other session variable is: " . $_SESSION['newvar']. "</p> ";
?>

Вывод браузера в каждом случае:

sess1.php

ИД пользователя: 10333

Другая переменная: TextVariable

Перейти на [следующую страницу].

и, sess2.php

Переменная сеанса userid:

Другая переменная сеанса:

Перейти на [последнюю страницу].

Несколько вещей, это НЕ:

  • У меня есть session_start () вверху обоих файлов.
  • Каталог переменных доступен для записи, и там отображаются переменные сеанса. (У меня есть около ста маленьких файлов с именем sess_b62, которые имеют это внутри: 'userid | i: 10333; textvar | s: 12: "TextVariable";'.)
  • phpinfo () сообщает мне, что файл php.ini читается правильно, а время жизни установлено по умолчанию, 0, т. Е. До закрытия браузера.

Я в своем уме. Есть предложения?

Большое спасибо.

Ответы [ 11 ]

0 голосов
/ 19 марта 2009

Используйте какой-нибудь инструмент и проверьте заголовки http, чтобы вы могли видеть, как отправляется cookie. Возможно, ваш веб-сервер неправильно настроен и отправляет файлы cookie с неверным другим доменом.

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

...