я нашел много ответов об этой проблеме, но ничего не решило мою проблему — поэтому я хочу показать вам свой код и надеюсь, что кто-то может найти ошибку ..
У меня есть стандартная форма HTML, которая передает некоторые данные с POST в следующий файл .php, где я получаю его и сохраняю в переменные сеанса. Я использую переменные сеанса по двум причинам:
Вот код:
session_start (); // Обработка переменных на post и reloaded-page если (Исеть ($ _ POST [ "locId"]) isset ($ _ POST ["dateId"])) { $ locId = htmlspecialchars ($ _ POST ["locId"]); $ dateId = htmlspecialchars ($ _ POST ["dateId"]); $ _SESSION ["locId"] = $ locId; $ _SESSION ["dateId"] = $ dateId; echo "Переменные сессии установлены: locId =". $ _SESSION ["locId"]. "dateId =". $ _SESSION [ "dateId"]; } elseif (isset ($ _ SESSION ["locId"]) isset ($ _ SESSION ["dateId"])) { эхо "получить его от сессии"; $ locId = $ _SESSION ["locId"]; $ dateId = $ _SESSIOn ["dateId"]; } еще { $ load_error = 1; $ status = "alert alert-danger"; $ message = "дерьмо, здесь нет переменных"; }
Первый вызов работает нормально — переменные сеанса установлены, и эхо дает правильные значения. После перезагрузки страницы я получаю эхо «получить его из сеанса», но мои переменные не имеют значений.
я также проверил мой session_id () при первом вызове и перезагрузке .. они НЕ совпадают.
Я тестирую простой файл test.php, где я начинаю сеанс с переменной и спрашиваю переменную в следующем файле. Работает нормально: — /
Это просто проблема с моим кодом выше. Я думаю, что мой веб-сервер работает правильно. Но какие есть причины для смены идентификатора сеанса и потери значений переменных сеанса?
Черт! Чтобы написать правильно, это все …
Я нашел свою ошибку.
Посмотрите на код в моем вопросе. Вторая переменная сеанса — $ _SESSIOn [«dateId»] .. n — строчные! Если я напишу это правильно и завершу в верхнем регистре, он работает.
Кроме того, session_id больше не является chaging, и я могу вывести session_id () столько, сколько нужно … но одна ошибка в $ _SESSIOn меняет все. Новый session_id при каждом вызове, … странно.
Узнал что-то еще раз 🙂 Спасибо всем за ответы и ваше время! Я надеюсь, что смогу помочь тебе в будущем
Ну, вашу ошибку довольно легко найти. На самом деле ваш код работает отлично. Но посмотрите на эту часть:
echo "get it from session";
$locId = $_SESSION["locId"];
$dateId = $_SESSIOn["dateId"];
Что ж, вы присваиваете значения сеанса двум переменным, но на самом деле вы просто пропустили их вывод в любом месте. Вот почему вы получаете «получить его из сеанса», но тогда ничего не отображается, вам нужно echo
их.
Просто добавьте echo
и он будет отображать ваши переменные отлично 🙂
echo "get it from session";
$locId = $_SESSION["locId"];
$dateId = $_SESSIOn["dateId"];
echo $locId;
echo $dateId;
Попробуй это:
идентификатор сессии();
session_start ();