Intereting Posts
PHP – добавить элемент в начало ассоциативного массива Перенаправление на диалог проверки подлинности – «Произошла ошибка. Пожалуйста, повторите попытку позже" Как эхо значения ассоциативного массива, возвращаемого функцией Лучший способ перенаправления мобильных устройств Mysqli Подготовить заявление – Возвращение ложно, но почему? Как установить cURL на Windows? «Не удается отправить ограничитель кеша сеанса – уже отправленные заголовки» Как обновить карту, когда отображение карты основано на долготе и широте, т.е. выборка из базы данных wordbar sidebar loops не работают, когда в search.php, когда не найдено ни одного результата PHP – Как отправить массив на другую страницу? Как найти строку в массиве в PHP? простая оценка php Dollar $ в строковых вопросах Запись файла конфигурации в PHP Ошибка Ubuntu / Apache2 / Forbidden / Permission отправить приложение из формы с phpmailer не работает

Как перенаправить $ _POST с PHP и cURL?

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

Может быть:

curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST); 

http://www.php.net/manual/en/function.curl-setopt.php

Это может быть либо передано как строка с urlencoded, как «para1 = val1 & para2 = val2 & …», или как массив с именем поля в качестве ключа и данных поля как значение.

Сделай это,

 curl_setopt($handle, CURLOPT_POSTFIELDS, http_build_query($_POST)); 
 <?php function executeCurl($arrOptions) { $mixCH = curl_init(); foreach ($arrOptions as $strCurlOpt => $mixCurlOptValue) { curl_setopt($mixCH, $strCurlOpt, $mixCurlOptValue); } $mixResponse = curl_exec($mixCH); curl_close($mixCH); return $mixResponse; } // if need any http auth $username = 'http-auth-username'; $password = 'http-auth-password'; $requestType = 'POST'; // this can be PUT or POST // this can be $arrPostData = $_POST; $arrPostData = array( 'key1' => 'value-1-for-k1y-1', 'key2' => 'value-2-for-key-2', 'key3' => array( 'key31' => 'value-for-key-3-1', 'key32' => array( 'key321' => 'value-for-key321' ) ), 'key4' => array( 'key' => 'value' ) ); // you can set your post data $postData = http_build_query($arrPostData); // raw php array $postData = json_encode($arrPostData); // Only USE this when request json data $arrResponse = executeCurl(array( CURLOPT_URL => 'http://whatever-your-request-url.com/xyz/yii', CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPGET => true, CURLOPT_VERBOSE => true, CURLOPT_AUTOREFERER => true, CURLOPT_CUSTOMREQUEST => $requestType, CURLOPT_POSTFIELDS => $postData, CURLOPT_HTTPHEADER => array( "X-HTTP-Method-Override: " . $requestType, 'Content-Type: application/json', // Only USE this when request json data ), // if required HTTP Authentication use below lines CURLOPT_HTTPAUTH => CURLAUTH_BASIC, CURLOPT_USERPWD => $username. ':' . $password )); 

Если кому-то это нужно, вот полнофункциональный запрос cURL, который перенаправляет $ _POST, где вы хотите (на основе ответа ZZ-кодера выше)

  $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://urlOfFileWherePostIsSubmitted.com"); curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // ZZ coder's part curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($_POST)); $response = curl_exec($ch); curl_close($ch);