2015-08-23 2 views
0


Я прочитал много статей и обсуждений (также в Stackoverflow), но я не нашел решения.
У меня есть форма с действием на внешний веб-сайт.
Мне нужно отправить мою форму, получив ответ от этого сайта (заголовок ответа моего HTTP-запроса хорош). Является ли это возможным?
Я попытался с завитком (CURLOPT_RETURNTRANSFER правда), но, может быть, есть что-то не так в моем следующем коде:PHP POST-данные и получение ответа с curl

 $post_data['xx'] = 'xxx'; 
     $post_data['yy'] = 'yyy'; 
     $post_data['zz'] = '13-12-2015'; 

     $postData = ''; 
     foreach($post_data as $k => $v) 
     { 
      $postData .= $k . '='.$v.'&'; 
     } 
     rtrim($postData, '&'); 

     $url = 'http://......'; 

     $ch = curl_init(); 

     curl_setopt($ch, CURLOPT_URL,$url); 
     curl_setopt($ch, CURLOPT_POST, 1); 
     curl_setopt($ch, CURLOPT_POSTFIELDS,$postData); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

     $result = curl_exec ($ch);   
     $http = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
     echo $http; 

     curl_close ($ch); 

Возвращение в «0».

Спасибо!

+0

Что именно не работает? 'Var_dump ($ HTTP)'? – Devon

+0

У меня 0 в качестве ответа от $ http. Есть идеи. Я попытался с var_dump, но я получил «int 0». @Devon – Gio

+0

Запустите 'print_r (curl_getinfo ($ ch));', чтобы получить дополнительную информацию, которая может помочь вам решить вашу проблему. – Emil

ответ

0

Если я взял то, что вы ищете, позвольте мне предположить, это решение:

main.php

<form method=post action=target.php><input name=mypostdata type=text ><input type=submit ></form><?php`include("curl.php");?> 

Target.php

<?php if(isset($_POST['mypostdata'])){echo "<span>done</span>";}else{}?> 

завиток .php

<?php function file_get_contents_curl($url){ 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
$data = curl_exec($ch); 
curl_close($ch); 
return $data; 
    } 
$html = file_get_contents_curl("target.php"); 
$doc = new DOMDocument(); 
@$doc->loadHTML($html); 
$nodes = $doc->getElementsByTagName('span'); 
//get and display what you need: 
$response = $nodes->item(0)->nodeValue; 
echo $response; 
?>