Переменные сеанса PHP недоступны при перенаправлении - PullRequest
0 голосов
/ 09 июня 2018

Я новичок во многом, поэтому прошу прощения, если этот вопрос очевиден.Я долго искал ответ.

Я борюсь с использованием переменной $ _SESSION для перенаправления.Я устанавливаю переменную на одной странице и пытаюсь прочитать ее на другой, к которой пользователь перенаправляется с первой страницы.По какой-то причине вторая страница не может прочитать переменную.вот мой код:

Страница PHP 1:

<?php 
  if(!session_id()) session_start();
  $_SESSION['someVar'] = "someValue";
  echo "<script type='text/javascript'>window.location.href='/index.php';</script>";

Страница PHP 2 (index.php):

<?php
  if(!session_id()) session_start();
  if (empty($_SESSION["someVar"])) {
    echo "no value!";
  } else {
    echo $_SESSION["someVar"];
  }
?>

Я всегда получаю "никакого значения!"».Я пытался решить эту проблему несколькими способами:

  1. Я выделил перенаправление на кнопку на странице1.не помогает.
  2. Я повторяю значение на странице 2 - оно выглядит как пустая строка.
  3. Я повторил session_id () на обеих страницах, и ониmatch.

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

1 Ответ

0 голосов
/ 09 июня 2018

Возможно, ваш каталог сеанса недоступен для записи.

с использованием session_save_path () , вот небольшая функция для проверки этого.

function check_session_path() {
    echo is_writable(session_save_path()) ? "writable." : "not writable.";
}

на вашей странице php1:

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