使用cURL成功登录


Using cURL to login successfully

我下面有两个文件,我正在尝试使用cURL自动登录并获得消息"登录成功",而不是消息"登录失败"。我该怎么做?

我知道这看起来像是我在乞求别人帮我写代码,而且在问这个问题之前,我没有花任何精力研究cURL,也没有制作自己的cURL代码。但是,我实际上做了很多研究,但我找不到任何我理解的例子,也找不到我想做的事情,所以这就是我在这里问的原因。如果可以的话,请帮忙。

test1.php

<form method = "POST" action = "test2.php">
<input type = "username" name = "username">
<input type = "password" name = "password">
<input type = "submit" value = "submit">
</form>

test2.php

$username = $_POST['username'];
$password = $_POST['password'];
if ($username == "username" && $password == "password") { 
echo "login success";
}
else {
echo "login fail";
}

需要结果:

login success

以下是基本代码:

<?php
$ch = curl_init('http://yourdomain.com/test2.php');
$post_params = array('username' => 'username', 'password' => 'password');
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_params); // PHP will format the array into POST data
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if ($response == 'login success') {
    echo 'Login was successful!';
} else {
    echo 'Something went wrong :(';
}

请注意,登录到真实的网站比只发送表单字段更复杂。您还需要取回会话cookie,并在将来的请求中发送该cookie。参见

在网站上显示登录的内容

您正在寻找执行POST请求的cURL命令行语法:

curl-X POST--数据"param1=value1&param2=value2"https://example.com/test2.php

我认为你可以这样做:

$data = array('username' => 'username', 'password' => password);
$url = 'http://example.com';
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_POST, true);
curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($handle);
var_dump($response);

您可以在使用cURL 传递$_POST值的已接受答案中看到更多详细信息