Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Post/Get请求未发送参数_Php_Post_Curl_Request - Fatal编程技术网

Php Post/Get请求未发送参数

Php Post/Get请求未发送参数,php,post,curl,request,Php,Post,Curl,Request,我正试图通过post请求将用户名和密码发送到本地主机上的登录页面。 我使用下面的代码生成请求并将其发送到页面 $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,CURLO

我正试图通过post请求将用户名和密码发送到本地主机上的登录页面。 我使用下面的代码生成请求并将其发送到页面

$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;
编辑 打印\u rcurl\u getinfo$ch;打印此信息 数组[url]=>[content\U type]=>text/html[http\U code]=>200[header\U size]=>380[request\U size]=>182[filetime]=>1[ssl\U verify\U result]=>0[redirect\U count]=>0[total\U time]=>2.234[namelookup\U time]=>0.063[connect\U time]=>0.063[pretransfer\U time]=>0.063[size\U upload]=>28[size\U download]=>2322[speed\U download]=>[上传速度]=>12[下载内容长度]=>2322[上传内容长度]=>28[开始传输时间]=>2.234[重定向时间]=>0[认证信息]=>0[主ip]=>:1[主ip]=>80[本地ip]=>::1[本地端口]=>54953[重定向url]=>阵列[主机]=>本地主机[接受]=>/[内容长度]=>28[内容类型]=>应用程序/x-www-form-urlencoded

生成请求后,我收到HTTP 200,OK状态作为响应。请求没有发送任何参数,作为响应,我收到的是正常的登录表单,而不是登录后的屏幕

任何人请告诉我上面的代码有什么问题

我也尝试过同样的stream\u context\u create和file\u get\u contents,但在这两种情况下都会生成相同的响应,而不是像接收任何参数一样在登录后屏幕上生成响应。

1 CURLOPT\u post选项期望布尔类型的值。但是,在代码中这并不重要,因为如果$fields为非,count$fields将强制转换为true-空的

2不要手动生成POST数据,请改用。此外,您可以将数据数组传递给CURLOPT_POSTFIELDS选项,并将其自动转换为字符串


3您不需要设置内容类型标题,因为cURL将为POST请求自动设置它。

将bool添加到CURLOPT\u POST选项添加此行:print\u rcurl\u getinfo$ch;before cURL_close@Phantom,它会产生相同的结果。@hindmost试图通过此选项查看信息,但它没有提供任何有用的信息。如果您愿意,我可以粘贴产生的结果。如果你想得到,提供任何细节都符合你的利益help@user3778430您必须根据所做的更改更新问题中的代码