Как отправить POST через cURL?

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

Отправляю так
if($curl = curl_init()){
	curl_setopt($curl, CURLOPT_URL, http://site.ru/file.php');
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($curl, CURLOPT_POST, true);
	curl_setopt($curl, CURLOPT_POSTFIELDS, 'foo=bar');
	$out = curl_exec($curl);
	curl_close($curl);
}


В файле file.php принимаю и вывожу print_r($_POST);
Результат array()

В чем проблема?
  • Вопрос задан
  • 9641 просмотр
Пригласить эксперта
Ответы на вопрос 2
t-alexashka
@t-alexashka
Сразу пишу legacy код
еще лучше массив обернуть в http_build_query()

$params = array(
   'foo' => 'bar'
);

...
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($params));
...

и я для таких целей не использую 'Content-Type: application/x-www-form-urlencoded' но это раз на раз не приходится, бывает что скрипт приемщик сам проверят тип данных, но поскольку у вас свой, вы можете этот момент опустить.
Ответ написан
vahe_2000
@vahe_2000
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,"http://www.mysite.com/tester.phtml");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
            "postvar1=value1&postvar2=value2&postvar3=value3");

curl_exec ($ch);
curl_close ($ch);

The simplepost.php Example
PHP/CURL Examples Collection
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы