Отправьте $ _POST с помощью php и перенаправьте браузер на полученную страницу. - PullRequest
0 голосов
/ 01 февраля 2011

Как отправить $ _POST и перейти на страницу публикации

Я пытаюсь

$rCurl = curl_init();
curl_setopt ($rCurl, CURLOPT_URL, SECUREURL.basename($_SERVER['PHP_SELF']));
curl_setopt ($rCurl, CURLOPT_TIMEOUT, 60);
curl_setopt ($rCurl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($rCurl, CURLOPT_RETURNTRANSFER, 0);
curl_setopt ($rCurl, CURLOPT_POSTFIELDS, $sPostData);
curl_setopt ($rCurl, CURLOPT_POST, 1);
//$sHtmlResult = curl_exec ($rCurl);
curl_exec ($rCurl);
curl_close($rCurl);

но результаты возвращаются на страницу и ничто не перенаправляет на страницу назначения с результатом

Как отправить данные $ _POST и перейти на страницу публикации вот так

header("Location:".SECUREURL.basename($_SERVER['PHP_SELF'])."?".$sPostData); 

Ответы [ 3 ]

0 голосов
/ 01 февраля 2011

HTTP POST из PHP, без cURL

вы можете попробовать stream_context_create</p> <pre> $message = 'success' $opts = array( 'http'=>array( 'method'=>"POST", 'header'=>"Accept-language: en\r\n", 'content' => http_build_query(array('status' => $message)) ) ); $context = stream_context_create($opts); /* Sends an http request to www.example.com with additional headers shown above and post the status */ $file = file_get_contents("http://www.example.com/", false, $http_options);

0 голосов
/ 01 февраля 2011

Это. Является. Невозможно.

Я надеюсь, что это достаточно ясно, чтобы остановить дальнейшие ответы от людей, которые не удосужились прочитать вопрос.

0 голосов
/ 01 февраля 2011

Как выглядит ваш $ sPostData?

Я использую следующее для кодирования массивов для CURL перед отправкой. $ post содержит ассоциативный массив полей POST.

foreach($post as $key=>$value) { 
  $postString  .= urlencode($key) . '=' . urlencode($value) . '&'; 
}
rtrim($postString,'&');

Тогда:

curl_setopt($ch, CURLOPT_POST, count($post));
curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);  

Идея состоит в том, что CURLOPT_POSTFIELDS должен выглядеть как строка GET и закодированный URL.

Вам также может потребоваться установить CURLOPT_USERAGENT, CURLOPT_ENCODING, CURLOPT_HTTPHEADER. Для отладки вы можете включить CURLOPT_HEADER, CURLOPT_HEADER и CURLINFO_HEADER_OUT.

...