Переменная сеанса исчезает - PullRequest
0 голосов
/ 27 июля 2011

У меня проблема с переменной сеанса, которая просто исчезает при переходе на новую страницу. На странице a переменная работает полностью. Я сделал несколько выводов от начала до конца.

На странице B она исчезла, а страница b выглядит следующим образом:

<?php 
  session_start();

  //include "dbConnect_local.php"; // Databasanslutningen lokalt
  //include "dbConnect.php";        // Databasanslutningen web

  echo $_SESSION['coming_from_input']." apa";
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sv" lang="sv" >
  <head>

  </head>

  <body>

  </body>
</html>

Страница b находится в том же домене, что и страница a. И это весь код, ничего не передается перед session_start ();

Используя session_id (), я вижу, что идентификатор сессии отличается на двух страницах.

Спасибо за любую помощь

Ответы [ 3 ]

0 голосов
/ 27 июля 2011

У вас есть session_start (); на странице А, прежде всего, не так ли?

... а вы проверили свои логи, чтобы убедиться, что об ошибках не сообщалось?

И вы создали скрипт, который явно выдает ошибку, чтобы проверить, что вы входите в систему, работает правильно?

А вы смотрели, что заголовки HTTP-ответа гарантируют, что cookie-файл устанавливается сервером на странице A?

А вы просматривали заголовки HTTP-запроса, чтобы проверить, что cookie возвращается браузером?

А вы используете обработчик сеанса по умолчанию?

И вы проверили, что каталог файлов сеанса доступен для записи с помощью uid веб-сервера?

И вы проверили, что после перехода на страницу A в этом каталоге создается файл сеанса с ожидаемым содержимым?

... только вы не сказали в своем исходном сообщении.

0 голосов
/ 28 июля 2011

Хорошо, теперь я решил это, и, похоже, мой глупый веб-отель портит мне жизнь. Я написал это как ответ, а не как комментарий, чтобы все могли видеть это. Я сделал это так:

Я выписал идентификатор сессии на странице a и странице b. Они не имели одинаковое значение. Это странно, подумал я, поскольку он работает в другой части моей страницы (войдите и зарегистрируйтесь). Таким образом, я вошел в систему и со страницы регистрации я перешел прямо на страницу B из этого выпуска. Идентификаторы совпадают.

Хорошо, забавно, поэтому я удалил весь код, который не был нужен со страницы a. Когда я сейчас попробовал все заработало. Хорошо, я добавил код chunk by chunk и постоянно запускал код в браузере, чтобы увидеть, когда он перестал работать.

Когда я добавил весь ранее удаленный код ... он все еще работал !!

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

0 голосов
/ 27 июля 2011

У вас до есть session_start ();на странице А, прежде всего, не так ли?

Если это так, разместите и страницу А тоже, потому что у нас слишком мало информации ...

...