此问题与this older question类似。
那里的解决方案似乎对我有用,但我得到的结果是没有登录。我在第二个请求中获取页面,但不是用户。 我应该改变什么? 这是代码:
/etc/apache2/mods-enabled/status.conf
当我没有回显<?php
$urlini='https://www.example.com/login';
$url='https://www.example.com/page-12345';
$ch = curl_init();
$fp = fopen(dirname(__FILE__).'/errorlog.txt', 'w');
curl_setopt($ch, CURLOPT_POST,true);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_STDERR, $fp);
curl_setopt($ch, CURLOPT_URL, $urlini);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_CAINFO, getcwd() . "/certificate.pem");
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array('email' => 'email@example.com' , 'password' => 'password')));
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$store = curl_exec($ch);
curl_setopt($ch, CURLOPT_URL, $url);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
,回显$response
时,我看到用户名填写在表单中,但密码不是。网站上登录表单的代码是:
$store
答案 0 :(得分:0)
我设法解决了这个问题。
事实证明,登录页面确实首先将登录信息发送到某个机器人防范站点。使用developer-&gt; inspector-&gt;网络启用持久性日志为我提供了真正的登录URL。相应地更改$urlini
后,代码就可以运行。