Как я могу перенаправить на страницу и добавить переменную $_POST с некоторой информацией в ней?
Я знаю, что с $_GET вам нужно добавить эту переменную в URL-адрес, например & var = foo
Как я могу перенаправить на страницу и добавить переменную $_POST с некоторой информацией в ней?
Я знаю, что с $_GET вам нужно добавить эту переменную в URL-адрес, например & var = foo
session_start();
$_SESSION = $_POST;
Затем ваши параметры POST будут доступны через $_SESSION.
Вы можете извлечь данные из $_POST
и добавить их в URL перенаправления:
header('Location: http://www.yoursite.com/test.php?var=' . urlencode($_POST['var']));
Если у вас больше параметров, см. http_build_query()
, чтобы помочь построить строку запроса.
Но обратите внимание, что эта страница test.php
будет загружена браузером с помощью метода GET
: сервер не может сказать браузеру, чтобы загрузить другую страницу с помощью POST
.
Вы можете сделать это, используя форму и некоторый 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.
Вы не можете. Ваши варианты:
a) добавьте опубликованную переменную в URL-адрес перенаправления, а затем посмотрите на $_GET
b) используйте переменную сеанса для переноса данных со страницы на страницу.
Лучший способ сделать это - использовать "Apache RewriteRule", который отправит данные POST в перезаписанный script.
Я решил ту же проблему, используя форму 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 отключен в браузере клиента (пользователь должен отправить форму вручную), но это приемлемо для моего случая.