Ошибка при получении session_id () после перенаправления на другую страницу - PullRequest
1 голос
/ 11 января 2011

Чрезвычайно нубский вопрос.

Я хочу разработать форму входа в PHP, используя шаблон Post / Redirect / Get. Страница с формой входа выглядит примерно так:

<?php
  if (try_login()) {
    session_regenerate_id();
    session_start();
    header('Location: main.php');
    exit();
  }
?>
<html>
  <head>
    <!-- etc, etc -->
  </head>
  <body>
    <form action="<?php echo htmlentities($_SESSION['PHP_SELF']); ?>" method="post">
      <!-- etc, etc--></head>
    </form>
  </body>
</html>

В целях отладки main.php содержит только

<?php
  echo htmlentities(session_id());
?>

Я ожидаю, что после успешного входа в систему я получу main.php и мой session_id(). Однако, когда я сам проверяю форму входа, я перенаправляюсь на main.php, но мой session_id() не появляется. Что не так с моим кодом?

1 Ответ

3 голосов
/ 11 января 2011

Вам необходимо вызвать session_start() в main.php, прежде чем вы сможете получить сеанс.

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