我正在尝试使用cURL填写并提交外部表单,但实际上我无法填写该字段,我理解为什么。
如何在表单提交后立即查看填写的表单?
我有以下代码:
<?php
//create array of data to be posted
$post_data['fname'] = 'Mario';
$post_data['lname'] = 'Rossi';
$post_data['email'] = 'mario@rossi.it';
$post_data['memberid'] = '1010101010';
$post_data['mobile'] = '3456789';
//traverse array and prepare data for posting (key1=value1)
foreach ( $post_data as $key => $value) {
$post_items[] = $key . '=' . $value;
}
//create the final string to be posted using implode()
$post_string = implode ('&', $post_items);
//create cURL connection
$curl_connection =
curl_init('http://dennehys.ie/mobile/douglas/formview.php?qstr=dHlwbz0mZGF5PVR1ZXNkYXkmZGF5ZGF0ZT0yMDE2LTAxLTI2JnJuZD0mY2xhc3NzaGVkdWxlPTQ5Mw==');
//set options
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_USERAGENT,
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
//set data to be posted
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);
//perform our request
$result = curl_exec($curl_connection);
print_r($post_data);
echo $result;
//show information regarding the request
print_r(curl_getinfo($curl_connection));
echo curl_errno($curl_connection) . '-' .
curl_error($curl_connection);
//close the connection
curl_close($curl_connection);
?>
答案 0 :(得分:0)
查看您要发布到的页面,表单包含以下行:
<form action="formresponse.php" method="post" data-ajax="false" name="book">
这意味着您要将数据发布到错误的页面,因为该表单中的所有发布数据都会转到formresponse.php
。您发送的页面可能与您发布的数据无关。
尝试更改此行:
curl_init('http://dennehys.ie/mobile/douglas/formview.php?qstr=dHlwbz0mZGF5PVR1ZXNkYXkmZGF5ZGF0ZT0yMDE2LTAxLTI2JnJuZD0mY2xhc3NzaGVkdWxlPTQ5Mw==');
为:
curl_init('http://dennehys.ie/mobile/douglas/formresponse.php');
答案 1 :(得分:0)
我更改了行并修复了我的代码,因为有四种隐藏的输入类型,现在代码看起来很有用但我不太确定。
隐藏的输入类型是:
'错字'是一个空字段(我认为该字段为空)
'day'='wednesday'; (你想要上课的那天)
'clsdl'='485'; (班级ID)
'daydate'='2016-01-27'; (班级日期)
当我发送请求时,代码会以成功消息回答我。
现在我无法理解如何在特定时间发送预订课程的请求。
我的意思是,可能在同一天有两个同一项运动的课程,我想指定我想要的课程。
我试图阅读页面的源代码,但我无法理解我该怎么做。