Home >Backend Development >PHP Tutorial >高手进,关于curl模拟登陆
模拟登陆织梦,版本5.7,已经去掉后台验证码,不知道为啥一直登陆不上(提示登陆成功却又跳回登陆地址)
<?php$cookie_file = tempnam('./temp','cookie');$login_url = 'http://localhost/dedecms/dede/login.php';$post_fields = 'gotopage=%2Fdedecms%2Fdede%2Findex.php&dopost=login&adminstyle=newdedecms&userid=admin&pwd=123456&sm1=';$ch = curl_init($login_url);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER,0);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);curl_exec($ch);curl_close($ch);$url='http://localhost/dedecms/dede/article_add.php?channelid=1';$ch = curl_init($url);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);$contents = curl_exec($ch);curl_close($ch);?>
没人会吗 坐等高手
坐等高手啊,没人会吗
代码的12 行改成 echo curl_exec($ch); 你嫩刚看到什么?
代码的12 行改成 echo curl_exec($ch); 你嫩刚看到什么?
改了也不行,提示登陆成功,跳转到后台首页 然后就又跳转到登陆页面了
代码的12 行改成 echo curl_exec($ch); 你嫩刚看到什么?
貌似从16行来时 获取不到cookie了,但是明明已经生成cookie了(ps:只是猜测)
那你 curl_setopt($ch, CURLOPT_HEADER, 1);
证实一下
那你 curl_setopt($ch, CURLOPT_HEADER, 1);
证实一下
1HTTP/1.1 302 Found Date: Thu, 04 Apr 2013 12:23:50 GMT Server: Apache/2.2.21 (Win32) PHP/5.3.10 X-Powered-By: PHP/5.3.10 Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: private Pragma: no-cache location: login.php?gotopage=%2Fdedecms%2Fdede%2Farticle_add.php%3Fchannelid%3D1 Content-Length: 0 Content-Type: text/html; charset=gb2312
他不是要跳转到这里吗
login.php?gotopage=%2Fdedecms%2Fdede%2Farticle_add.php%3Fchannelid%3D1
他不是要跳转到这里吗
login.php?gotopage=%2Fdedecms%2Fdede%2Farticle_add.php%3Fchannelid%3D1
不是啊,要跳转到 要跳转到 http://localhost/dedecms/dede/article_add.php?channelid=1
他不是要跳转到这里吗
login.php?gotopage=%2Fdedecms%2Fdede%2Farticle_add.php%3Fchannelid%3D1
我需要跳转到 http://localhost/dedecms/dede/article_add.php?channelid=1 而他错误的跳转到了登陆页面(即:http://localhost/dedecms/dede/login.php?gotopage=%2Fdedecms%2Fdede%2Findex.php)
他不是要跳转到这里吗
login.php?gotopage=%2Fdedecms%2Fdede%2Farticle_add.php%3Fchannelid%3D1
需要获取 http://localhost/dedecms/dede/article_add.php?channelid=1这个页面的数据
dede验证
dede验证 验证码已经去掉
坐等高手解答
坐等高手解答
我是打酱油的。
哈哈,我可用分太少了,回复搞点分。
应该是cookie没有生效,或者cookie域不对
如果登陆成功之后还跳转回首页 那应该就是cookie的问题了...
如果登陆成功之后还跳转回首页 那应该就是cookie的问题了...
貌似确实是cookie 但是cookie已经保存到文件里面了,难道第20行代码没将cookie发过去?求解决方法
哈哈,我可用分太少了,回复搞点分。
哈哈,我可用分太少了,回复搞点分。 我擦 咋都是打酱油的
继续求高手继续求高手
继续坐等高手 ,今天
继续坐等高手 ,今天
header("location:login.php?gotopage=".urlencode($dedeNowurl));
用这个函数去试试,我用它查询汽车违章是没有问题的~~~
<?phpsession_start();function getHtml($url,$tmpFile,$postData){ $ch = curl_init($url); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIEJAR, $tmpFile); curl_setopt($ch, CURLOPT_COOKIEFILE, $tmpFile); if($postData!=NULL) { curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); } $content=curl_exec($ch); curl_close($ch); return $content;} ?>
不能用localhost的。
我是;来学习的。。。
dede登陆类做了限制