#php #curl
#php #curl
Вопрос:
У меня есть следующий код php Curl, чтобы отправить форму и получить таблицы результатов
<?php
function httpPost($url,$params)
{
//echo 1;
$postData = '';
//create name value pairs seperated by amp;
foreach($params as $k => $v)
{
$postData .= $k . '='.$v.'amp;';
}
rtrim($postData, 'amp;');
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POST, count($postData));
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$output=curl_exec($ch);
curl_close($ch);
//return $params;
return $output;
}
$params = array(
"form_hf_0"=>null,
"searchMode:edit"=>"Births",
"searchSwitch:birthContainer:regNumber:regNumber"=>null,
"searchSwitch:birthContainer:regNumber:regYear"=>null,
"searchSwitch:birthContainer:subjectName:familyName:edit"=>"smith",
"searchSwitch:birthContainer:subjectName:givenName:edit"=>null,
"searchSwitch:birthContainer:subjectName:otherNames:edit"=>null,
"searchSwitch:birthContainer:fatherGivenName:edit"=>null,
"searchSwitch:birthContainer:fatherOtherNames:edit"=>null,
"searchSwitch:birthContainer:motherGivenName:edit"=>null,
"searchSwitch:birthContainer:motherOtherNames:edit"=>null,
"searchSwitch:birthContainer:dateOfEvent:range:edit"=>true,
"searchSwitch:birthContainer:dateOfEvent:switchGroup:range:dateFrom:day"=>01,
"searchSwitch:birthContainer:dateOfEvent:switchGroup:range:dateFrom:month"=>01,
"searchSwitch:birthContainer:dateOfEvent:switchGroup:range:dateFrom:year"=>1788,
"searchSwitch:birthContainer:dateOfEvent:switchGroup:range:dateTo:day"=>31,
"searchSwitch:birthContainer:dateOfEvent:switchGroup:range:dateTo:month"=>12,
"searchSwitch:birthContainer:dateOfEvent:switchGroup:range:dateTo:year"=>1913,
"searchSwitch:birthContainer:district:edit"=>null,
"search-button"=>"Search"
);
$param1 = array("username"=>"sa","password"=>"1");
echo httpPost("https://lifelink.bdm.nsw.gov.au/lifelink/familyhistory/search?0-2.IFormSubmitListener-mainContent-form",$params);
?>
Ссылка на форму находится здесь: https://lifelink.bdm.nsw.gov.au/lifelink/ familyhistory /search?0
У меня ничего не напечатано.
Может кто-нибудь указал, где что-то не так?
Результат здесь http://ec2-54-213-181-25.us-west-2.compute.amazonaws.com/htdocs/lib/CURL/curl.php
Ничего в таблице, как обычный поиск с фамилией «смит», диапазон дат с 1788 по 1914 год.
Комментарии:
1. Да, формы Apache Wicket достаточно сложны, когда вы пишете код Java ;). Если серьезно, вы включили
display_errors
в своей среде разработки и установилиerror_reporting
значениеE_ALL
?2. форма не моя, я просто хочу извлечь данные из этого поиска с помощью cURL
3. Вы можете включить параметр CURLOPT_VERBOSE для отладки того, что может пойти не так:
curl_setopt($ch, CURLOPT_VERBOSE, true);
4. Я ввел эту строку и все равно не получил результата? какая-нибудь сложная вещь с этой формой?
5. Возможно, проблема в
POST
данных, которые вы отправляете. Как$params
заполняется массив перед передачей вhttpPost
?