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

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

В чем проблема?
  • Вопрос задан
  • 12657 просмотров
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Skillbox
    PHP-разработчик. Базовый уровень
    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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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