Как отправить 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()

В чем проблема?
  • Вопрос задан
  • 12577 просмотров
Пригласить эксперта
Ответы на вопрос 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы