PHP: имитация тега <form>с данными POST, а также перенаправление пользователя - PullRequest
2 голосов
/ 01 июня 2010

Я искал в интернете способ сделать это без удачи :( В принципе, легко создать форму в HTML с кнопкой отправки и некоторыми данными и отправить ее по URL-адресу. При этом вы отправляете данные POST, а также пользователь попадает на страницу.

Я знаю, что вы можете отправлять POST-данные, используя cURL, и получать ответ обратно в PHP, но как мне туда попасть, мне нужно смоделировать, что именно тег делает в php.

Какой-нибудь пример кода или ссылок был бы великолепен!

Ответы [ 3 ]

3 голосов
/ 01 июня 2010

Если вы хотите, чтобы пользователь увидел полученную страницу, у вас есть два варианта:

  • Прокси результат пользователю. Это не так просто, как кажется, из-за URL-адресов ссылок и прочего, и может даже не соответствовать вашим ожиданиям.
  • Не используйте PHP вообще, создайте форму в HTML (множество скрытых входных данных) и отправьте ее через JavaScript.
1 голос
/ 01 июня 2010

В cURL используйте curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);. Это отобразит результат на экране, а не вернет его в строку. Если другой сайт обычно перенаправляет после отправки формы, то также произойдет перенаправление и вы перейдете на новую страницу.

0 голосов
/ 01 июня 2010

Если вам действительно нужно перенаправить пользователя на другую страницу после отправки (вместо того, чтобы просто показать результат на той же странице), вы можете использовать заголовок ("Location: http://www.yourdomain.com/resultpage"); после того, как PHP обработает вызов cURL с данными POST. Мне любопытно, почему вы не хотите выводить результаты вызова cURL немедленно.

Похоже, вы используете веб-сервис. Вы?

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

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