Задать вопрос

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

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

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

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