Как автоматически перенаправить на другой скрипт PHP, передавая некоторые данные? - PullRequest
2 голосов
/ 02 февраля 2011

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

$_SESSION['ses']['field1'] = $var1;
header("Location: http://page.com/another.php");
exit;

(у меня есть session_start (), помещенный в начале обоих файлов). Это перенаправление заголовка "теряет" идентификатор сеанса? И если это не так и не сработает, то как иначе? Я могу только представить себе использование $ _GET или куки, но оба они менее безопасны и просты в обращении.

1 Ответ

3 голосов
/ 02 февраля 2011

Явно отправьте идентификатор сеанса на новую страницу, например:

session_start();
$_SESSION['ses']['field1'] = $var1;
header("Location: http://page.com/another.php?phpSESSID=".session­_id());

Затем на новой странице получите идентификатор сеанса и используйте его следующим образом

<?php
session_id($_GET['phpSESSID']);
session_start();

...

Это будетРабота.Это известная ошибка PHP , если вы используете древнюю версию PHP.Кроме того, иногда сеанс ДЕЙСТВИТЕЛЬНО теряется при перенаправлении, поэтому вам необходимо получить идентификатор сеанса, с помощью которого вы можете восстановить сеанс.Некоторые браузеры прекрасно работают с перенаправлением, но некоторые нет, например IE6.

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