HTTP POST запросы в PHP - PullRequest
       56

HTTP POST запросы в PHP

4 голосов
/ 07 января 2010

Как вы собираетесь перенаправить браузер и отправить HTTP-запрос POST в PHP? header("Location: file.php?foo=bar") запросов HTTP POST, если хотите.

Ответы [ 7 ]

5 голосов
/ 07 января 2010

Вы не можете - HTTP не позволяет этого - если вы хотите передать аргументы через перенаправление, они должны быть встроены в URL как GET vars.

С

3 голосов
/ 07 января 2010

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

Curl Manual

Пример Curl POST

PHP POST без скручивания

Для перенаправления браузера я бы предложил использовать Javascript.

Пример формы, которая выполняет POST и перенаправляет

 <FORM action="http://somesite.com/prog/adduser" method="post">
    <P>
    <LABEL for="firstname">First name: </LABEL>
              <INPUT type="text" id="firstname"><BR>
    <LABEL for="lastname">Last name: </LABEL>
              <INPUT type="text" id="lastname"><BR>
    <LABEL for="email">email: </LABEL>
              <INPUT type="text" id="email"><BR>
    <INPUT type="radio" name="sex" value="Male"> Male<BR>
    <INPUT type="radio" name="sex" value="Female"> Female<BR>
    <INPUT type="submit" value="Send"> <INPUT type="reset">
    </P>
 </FORM>
2 голосов
/ 07 января 2010

Я не уверен, зачем вам это нужно, однако это невозможно на любом серверном языке.

Вы можете использовать библиотеку javascript, такую ​​как jQuery , чтобы запросить страницу с помощью почтового запроса

1 голос
/ 21 апреля 2010

Если вам нужно перенести данные при перенаправлении без отображения данных в URL, вы можете использовать $ _SESSION, сначала сохранить данные в сеансе, а затем перенаправить страницу, после перенаправления получить данные из сеанса и уничтожить данные сеанса.

ОК, если вам нужно перенести данные на другой сайт, не отображая их в URL, вам нужно использовать вместо этого Javascript ... например, переносить данные в payPal. просто создайте форму и напишите код javascript для автоматической отправки формы при загрузке страницы. ниже приведен пример кода:

<form name="myform" action="handle-data.php">
Search: <input type='text' name='query' />
<a href="javascript: submitform()">Search</a>
</form>
<script type="text/javascript">
function submitform()
{
  document.myform.submit();
}
</script> 
1 голос
/ 07 января 2010

Этот вопрос был задан здесь Как вы POST на страницу, используя функцию заголовка PHP ()? .

Кто-то прокомментировал, что если у вас уже есть данные, зачем вам их где-либо публиковать, почему вы не можете просто воздействовать на данные на этой странице?

1 голос
/ 07 января 2010

PHP не имеет ничего подобного. Чтобы выполнить ваш пример, вы можете просто сказать $_GET['foo'] = 'bar'; include("file.php"), однако URL-адрес, данный браузеру, не изменится.

Подобный вопрос: Перевод кода: ASP.NET Server. Перевод в PHP

1 голос
/ 07 января 2010

Я не верю, что вы можете получить браузер для данных POST, перенаправив их в середине запроса Вы ограничены получить. Если вы хотите, чтобы браузер POST-что-то, вам нужно создать <form> и отправить его. (Или используйте запрос AJAX.)

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