这是我在这个论坛上的第一个问题,但它之前通过找到答案帮助了我。所以我试图使用PHP和CURL自动登录我的帐户。
我是PHP的新手,但到目前为止,每当我需要连接到网页时,请发布帖子或获取或关注重定向所有内容。
问题是我尝试登录的帐户有一个用户/密码页面,后面是一个令人难忘的单词页面,我必须从我难忘的单词中输入一些字符。
现在我设法通过第一页并获得第二页我必须输入令人难忘的单词字符但是当我尝试这样做(所以第二篇文章)不起作用时 - 我被重定向到登录
现在我试图调查一下,看看问题是什么,但我仍然不确定为什么不起作用。我观察到服务器在正常登录时传递的JSESSIONID是相同的,而当我运行我的脚本时,JSESSIONID会发生变化。我正在使用:
curl_setopt($this->curl, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($this->curl, CURLOPT_COOKIEJAR, 'cookie.txt');
但是当我检查文件时它是空的并且自创建以来它没有被修改过。是的,文件可以写(它有777权利)。
我不知道这是问题还是其他什么,但我寻找答案,我尝试了不同的事情,没有任何效果。所以任何想法都会受到赞赏。
谢谢
答案 0 :(得分:0)
这是一个我可以确认作品的例子。它显示了cookieJar文件的完整路径,并从脚本的执行位置获取完整路径,因此它适用于大多数操作系统。
<?PHP
$cookiepath = __DIR__.DIRECTORY_SEPARATOR.'cookieJar.txt';
echo "Saving cookies to: $cookiepath\n";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.google.com");
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0');
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiepath);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiepath);
curl_setopt($ch, CURLOPT_HEADER ,1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER ,1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION ,1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$data = curl_exec($ch);
?>