当前位置:Gxlcms > PHP教程 > PHPcurl模拟登陆获取cookie求助

PHPcurl模拟登陆获取cookie求助

时间:2021-07-01 10:21:17 帮助过:22人阅读

菜鸟学习使用PHP curl模拟登陆,等陆weiphon论坛时用以下代码成功,登陆www.xiaomi.com就死活成功不了,求助啊。窃以为是cookie获取有问题。麻烦牛人帮忙解决一下。苦思无所得夜不能寐啊!
  1. <!--?php
  2. $cookie_file=tempnam('./temp','cookie');
  3. $login_url='https://account.xiaomi.com/pass/serviceLoginAuth';
  4. $post ='user&pwd=&sid=eshop&callback=http%3A%2F%2Forder.xiaomi.com%2Flogin%2Fcallback%3Ffollowup%3Dhttp%253A%252F%252Fwww.xiaomi.com%252F%26sign%3DMjk4NmVlYzNiOWY5YTkwMjExNzg5MjkyNzE3ZmIxOGM4YTBiMDk1Mg%2C%2C&_sign=f%2FKB8SAfmaLZ0s28kcLtBSmZlEM%3D&_json=true'//避免不必要的麻烦 post的具体帐号密码去掉了
  5. $ch=$curl=curl_init($login_url);
  6. curl_setopt($ch,CURLOPT_HEADER,0);
  7. curl_setopt($ch,CURLOPT_RETURNTRANSFER,0);
  8. curl_setopt($ch,CURLOPT_POST,1);
  9. curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file);
  10. curl_setopt($ch,CURLOPT_POSTFIELDS,$post);
  11. curl_exec($ch);
  12. curl_close($ch);
  13. $url="http://www.xiaomi.com/index.php";
  14. $ch=curl_init($url);
  15. curl_setopt($ch,CURLOPT_HEADER,0);
  16. curl_setopt($ch,CURLOPT_RETURNTRANSFER,0);
  17. curl_setopt($ch,CURLOPT_COOKIEFILE,$cookie_file);
  18. $contents=curl_exec($ch);
  19. curl_close($ch);
  20. ?-->


回复讨论(解决方案)

把第十九行删除了

  1. <!--?php $url="http://www.xiaomi.com/index.php"; $ch=curl_init($url); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch,CURLOPT_RETURNTRANSFER,0); //curl_setopt($ch,CURLOPT_COOKIEFILE,$cookie_file); echo $contents=curl_exec($ch); curl_close($ch);</pre--> <br> 测试成功 <p></p> <p class="sougouAnswer"> 可是这样就没达到模拟帐号登陆的效果呀。只是采集了xiaomi的主页。 </p> <p class="sougouAnswer"> 那说明还有数据没有提交。例如: <br> curl_setopt($ch, CURLOPT_REFERER, <br> post的数据不全: <br> 两周内自动登录的input标志:auto=1 <br> 网页里面表单的其它值等。 <br> </p> <p class="sougouAnswer"> $login_url='https://account.xiaomi.com/pass/serviceLoginAuth'; <br> 应为: <br> $login_url='https://account.xiaomi.com/pass/serviceLoginAuth2'; </p> <p class="sougouAnswer"> </p><pre class="sycode layui-box layui-code-view layui-code-notepad" name="code"><ol class="layui-code-ol"><li></li></ol></pre> <br> 里面所有<input type="hidden" <br=""> 的值,其中passToken可能是使用js生成的。 <p></p> <p class="sougouAnswer"> 感谢大神提供思路,我再试试看~ </p>

人气教程排行