【发布时间】:2014-08-17 00:32:04
【问题描述】:
我正在尝试通过发布请求将用户名和密码发送到我的本地主机上的登录页面。 我正在使用下面的代码生成请求并将其发送到页面
$url='http://localhost/index.php';
$fields = array('username' => 'admin', 'password' => '1234');
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($fields));
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
编辑
print_r(curl_getinfo($ch));打印此信息
数组 ( [url] => http://www.url.com/index.php [content_type] => text/html [http_code] => 200 [header_size] => 380 [request_size] => 182 [filetime] => -1 [ssl_verify_result] => 0 [ redirect_count] => 0 [total_time] => 2.234 [namelookup_time] => 0.063 [connect_time] => 0.063 [pretransfer_time] => 0.063 [size_upload] => 28 [size_download] => 2322 [speed_download] => 1039 [speed_upload] => 12 [download_content_length] => 2322 [upload_content_length] => 28 [starttransfer_time] => 2.234 [redirect_time] => 0 [certinfo] => Array () [primary_ip] => ::1 [primary_port] => 80 [ local_ip] => ::1 [local_port] => 54953 [redirect_url] => ) Array ( [Host] => localhost [Accept] => / [Content-Length] => 28 [Content -Type] => application/x-www-form-urlencoded )
请求已生成,我收到 HTTP 200,OK 状态作为响应。该请求没有发送任何参数,作为响应,我收到了正常的登录表单,而不是在登录屏幕之后。
任何人请告诉我上面的代码有什么问题。
我已尝试使用 stream_context_create 和 file_get_contents 进行相同的操作,但在两种情况下(登录表单而不是登录后屏幕)都会生成相同的响应,就像它们正在接收任何参数一样。
【问题讨论】:
-
将 bool 放入 CURLOPT_POST 选项
-
在
curl_close之前添加这一行:print_r(curl_getinfo($ch)); -
@Phantom,它产生相同的结果。
-
@hindmost,试图通过此选项查看信息,但它没有提供任何有用的信息。如果你喜欢我可以粘贴生成的结果。
-
如果您想获得帮助,请提供任何详细信息符合您的利益