Перенаправление с переменной $ _POST - PullRequest
4 голосов
/ 28 марта 2011

Как я могу перенаправить на страницу и добавить переменную $ _POST с некоторой информацией в ней?

Я знаю, что с помощью $ _GET вы должны добавить переменную к URL, например & var = foo

Ответы [ 6 ]

6 голосов
/ 28 марта 2011
session_start();

$_SESSION = $_POST;

Тогда ваши параметры POST будут доступны через $ _SESSION.

4 голосов
/ 28 марта 2011

Вы можете сделать это, используя форму и немного JavaScript.

Вот пример:

<form action="/path/to/redirect/to" id="example-id">
    <?php foreach ($_POST as $key => $value): ?>
    <input type="hidden" name="<?php echo $key ?>" value="<?php echo $value ?>" />
    <?php endforeach ?>
</form>

<script type="text/javascript">
    $(document).ready(function() {
        $("#example-id").submit();
    });
</script>

Обратите внимание, что в примере используется JQuery для части JavaScript.

4 голосов
/ 28 марта 2011

Вы можете извлечь данные из $_POST и добавить их к URL перенаправления:

header('Location: http://www.yoursite.com/test.php?var=' . urlencode($_POST['var']));

Если у вас есть дополнительные параметры, см. http_build_query(), чтобы помочь в построениистрока запроса.


Но обратите внимание, что эта страница test.php будет загружена браузером с использованием метода GET: сервер не может сказать браузеру, что он загружает другую страницу с помощью POST.

3 голосов
/ 28 марта 2011

Лучший способ сделать это - использовать Apache RewriteRule, который отправит данные POST переписанному сценарию.

3 голосов
/ 28 марта 2011

Вы не можете.Вы можете

a) добавить опубликованную переменную в URL перенаправления, а затем посмотреть на $ _GET

b) использовать переменную сеанса для переноса данных со страницы на страницу.

1 голос
/ 23 января 2013

Я решил ту же проблему с помощью формы POST и автоматической проверки с помощью JavaScript.

<?php
.. blah blah blah my stuff

$body = "<html><body onload='connexion.submit()'>";
$body .= "<form name='connexion' action='$connectURL' method='post'>";
$body .= "<input type='hidden' name='username' value='$dataLogin'>";
$body .= "<input type='hidden' name='password' value='$dataPassword'>";
$body .= "<input type='submit' value='OK' />";
$body .= "</form>";
$body .= "</body></html>";
?>

Сбой, если JavaScript отключен в браузере клиента (пользователь должен отправить форму вручную), но это приемлемо для моего случая.

...