Использование curl для отправки / получения результатов форм

Мне нужна помощь в попытке использовать завиток для отправки данных на страницу и получения результатов после отправки формы.

Я создал простую форму:

<form name="test" method="post" action="form.php"> <input type="text" name="name" size="40" /> <input type="text" name="comment" size="40" /> <input type="submit" value="submit" /> </form> 

Кроме того, у меня есть PHP-код для обработки этой формы на той же странице. Все, что он делает, это вернуть значения формы.

Локус, который я использовал, таков:

  $h = curl_init(); curl_setopt($h, CURLOPT_URL, "path/to/form.php"); curl_setopt($h, CURLOPT_POST, true); curl_setopt($h, CURLOPT_POSTFIELDS, array( 'name' => 'yes', 'comment' => 'no' )); curl_setopt($h, CURLOPT_HEADER, false); curl_setopt($h, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($h); echo $result; 

Когда я запускаю страницу с помощью curl-кода в ней, я получаю содержимое страницы form.php, но она не отображает переменные, которые PHP должен иметь echo'd при отправке формы.

был бы признателен за любую помощь в этом.

Благодарю.

AHHHH после вашего комментария, проблема ясна.

вам нужно включить еще одну переменную POST в ваш массив.

 'submitted' => 'submitted' 

кнопка отправки также возвращает значение post, если щелкнуто, которое вы проверяете в своей обработке форм PHP.

 if ($_POST['submitted']) { 

в вашем curl-коде, однако вы не указали переменную post.

если это то, что вы ищете, установите флажок рядом с этим ответом. благодаря!

От чтения двух других ответов и комментариев от OP у меня есть пара идей.

В частности, Комментарий к ОП:

Отправка формы вручную приводит к правильному выходу. PHP, который обрабатывает форму: if (isset ($ _ POST ['submitted'])) {echo $ _POST [имя] ….. и т. Д. И все.

В стандартных условиях ваша основная форма, как указано в исходном вопросе, будет генерировать массив $ _POST следующим образом:

 array( 'name' => 'The Name as Entered in the Form' , 'comment' => 'The Comment as Entered in the Form' , 'submit' => 'submit' # From the "Submit" button ); 

Ваш комментарий предполагает, что какой-то аспект вашего обработчика формы ищет элемент $ _POST, называемый «отправленным».

1) Основная форма, изложенная в вопросе, всегда будет возвращать FALSE для проверки на $ _POST ['submitted'] и, таким образом, инициирует действие ELSE (если присутствует) для этого условного.

2) Ваш CURL Action не устанавливает ни «submit», ни «submit», и снова будет возвращать FALSE для условного.

Поэтому я бы посоветовал вам:

1) Проверьте обработчик формы и посмотрите, какие поля необходимы, каковы их имена и каков их контент.

2) Проверьте свою основную форму и убедитесь, что у нее есть соответствующие поля.

3) Проверьте действие CURL и убедитесь, что он детализирует каждое поле, которое требуется. (Простая проверка будет заключаться в том, чтобы вставить print_r( $_POST );die(); в верхней части обработчика форм и отправить основную форму. Это покажет вам, что именно отправляет форму, чтобы вы могли ее воссоздать в CURL.