php - CURL,使用 curl 发送登录请求

标签 php html http curl web-deployment

所以我有这个基本的 html fourm

<form action="action.php" class="btn" autocomplete="on">
  Username: <input type="text" name="username" size="15" /><br />
  Password: <input type="password" name="password" size="15" /><br />
  <div align="center">
    <p><input type="submit"  value="Local" /></p>
  </div>
</form>

在我的 action.php 中有

$ch = curl_init();
$username = $_POST["username"];
$password = $_POST["password"];

$postData = array(
        'login' => '$username',
        'pwd' => '$password'
    );

curl_setopt_array($ch, array(
    CURLOPT_URL => 'facebook.com',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $postData,
    CURLOPT_FOLLOWLOCATION => true
));

$output = curl_exec($ch);
echo $output;

我的问题是,当我点击提交按钮时,它打开了 facebook.com,但没有执行任何操作。如果登录成功,我真正想要的只是真或假。有没有办法查明给定的用户名和密码是否正确?我知道这是基本的,但我是 php 的新手,抱歉 :-p

最佳答案

您需要添加 method='POST'在你的 <form>作为一个属性。

像这样...

<form action="action.php" method='POST' class="btn" autocomplete="on">

为什么没有反应?

您需要添加此 cURL 参数 CURLOPT_SSL_VERIFYPEER => false .

这样..你的代码看起来像

curl_setopt_array($ch, array(
    CURLOPT_URL => 'facebook.com',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $postData,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_SSL_VERIFYPEER => false  //<---- See I added it here
));

关于php - CURL,使用 curl 发送登录请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21719686/

相关文章:

php - .htaccess 重写问题

php - 如何即时重置 jquery 函数

javascript - ckeditor 将样式应用于选择

android - 可以使用 MQTT 来实现请求/响应行为吗

php - 如何修复 nav_menu.php 中的 "Illegal string offset ' output_key'"

php - 需要在 MySQL 中具有特定列条目的行

java - 将位置数据插入现有 sql 数据库的 Android 应用程序

html - 在 Bootstrap 中更改表单字段不透明度

Android : Intercept network calls (HTTP, HTTPS 等..)源 self 的应用程序内的第 3 方库

java - HttpClient 上传大文件并显示发送的字节数