我对cUrl经验不足。我正在创建一个自动登录网站的机器人。我已经使用cUrl来做到这一点。当我运行我的脚本时,它成功登录了我(我得到响应“ Ok”),但是当我重定向到其他页面时,我退出了。 这是我的代码:
<?php
$username="username";
$userpass="password";
$url="https://www.invertironline.com/User/DoLogin";
$cookie="cookie.txt";
$postdata = "username=".$username."&password=".$userpass."";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64;
x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36");
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_COOKIEJAR, realpath($cookie));
curl_setopt ($ch, CURLOPT_COOKIEFILE, realpath($cookie));
curl_setopt ($ch, CURLOPT_REFERER, $url);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_POST, 1);
$headers = array();
$headers[] = 'application/xhtml+voice+xml;version=1.2, application/x-
xhtml+voice+xml;version=1.2, text/html, application/xml;q=0.9,
application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap,
*/*;q=0.1';
$headers[] = 'Connection: Keep-Alive';
$headers[] = 'Content-type: application/x-www-form-urlencoded;charset=UTF-
8';
$headers[] = 'X-Requested-With: XMLHttpRequest';
$headers[] = 'Referer: https://www.invertironline.com/mercado/cotizaciones';
$headers[] = 'Origin: https://www.invertironline.com';
$headers[] = 'Host: www.invertironline.com';
curl_setopt ($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt ($ch, CURLOPT_HEADER, 1);
$result = curl_exec ($ch);
curl_close($ch);
echo $result;
header("Location: https://www.invertironline.com/mercado/cotizaciones");
以下是一些其他信息: 如果我使用用户名和密码以及操作创建了一个HTML表单并将其提交,它将使我登录并返回以下响应:
{"result":"OK","redirect":"/MiCuenta/EstadoCuenta"}
如果凭据错误,我会收到以下答复:
{"result":"Error"}
因此,当我使用curl时,我会得到相同的响应,但是当我尝试重定向时,我没有登录(可能未保存会话) 我花了3天的时间为此找到解决方案,但仍然无法解决任何问题。
答案 0 :(得分:0)
在cookie.txt文件中查看。它应该详细显示您遇到的问题。 如果会话可用,但没有响应,请告诉我,这样我就可以知道如何为您提供更好的帮助,如果文件清晰,则在cookie存储阶段您的代码中有问题。因此,请检查cookie。 txt文件,告诉我您在其中找到了什么。