Перенаправление на другой URL с использованием PHP и передача некоторых переменных POST (Параметры) - PullRequest
0 голосов
/ 23 декабря 2011

Как я могу перенаправить на другую страницу вместе с передачей некоторых параметров POST с помощью PHP?

Ответы [ 3 ]

4 голосов
/ 23 декабря 2011

Вы не можете «перенаправить» с помощью метода POST как такового, вам нужно выполнить запрос POST к сайту, на который вы планировали перенаправить.Взгляните на пример cURL POST из http://php.net/manual/de/book.curl.php:

$ch = curl_init();

$data = array('name' => 'Foo', 'file' => '@/home/user/test.png');

curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_exec($ch);

Замените CURLOPT_URL вашей целью и установите необходимые поля в массиве $data.Чтобы это работало, в вашем PHP должен быть включен модуль cURL.

В качестве альтернативы вы можете сохранить все данные, которые вы планируете отправить в POST, в своем сеансе и просто получить оттуда целевое чтение.

2 голосов
/ 23 декабря 2011

вам нужно сохранить параметры POST в переменной SESSION

1 голос
/ 23 декабря 2011

Как я могу перенаправить на другую страницу вместе с передачей некоторых параметров POST с помощью PHP?

Это трудно сделать, потому что для перенаправления нужны и сервер, и браузер.

Ваш скрипт может сообщить браузеру, что он должен перенаправить.

Но браузер, согласно спецификациям, должен получить подтверждение, чтобы разрешить отправлять запрос POST на перенаправленный URL.

Но даже в этом случае не все браузеры будут повторно отправлять данные публикации с перенаправлением:

Примечание. При автоматическом перенаправлении запроса POST после получения кода состояния 301 некоторые существующие пользователи HTTP / 1.0агенты ошибочно преобразуют его в запрос GET.( Ref )

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

Однако, как писал Кашиф Кхан, вы можете сохранить отправленные данные поста в какой-то сеанс, а затем перенаправить пользователя в новое место, где вы могли бы читать снова.из этого сеанса.

Чтобы все это работало в браузере, используйте 303 См. Другой код состояния для перенаправления.

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