模拟登陆织梦,版本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);?>
表示没看懂,坐等高人,进来学习
推荐使用框架 snoopy
google一下即可。
要跳转?你就跟着跳转就是了
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
应该是织梦那边有什么cookie没有统一吧?
看了楼主的代码,我倒想起了之前弄的一个东西原来是错在这个地方了
之前,我是一起写的。
[code]
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
[/code]
要跳转?你就跟着跳转就是了
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
加上这行也不行啊,你那边测试过了吗,测试过的话请贴下代码
看了楼主的代码,我倒想起了之前弄的一个东西原来是错在这个地方了
之前,我是一起写的。
[code]
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
[/code]
那应该怎么写 请贴下完整的代码
试试这个看行不行
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; } ?>
试试这个看行不行
PHP code?1234567891011121314151617function getHtml($url,$tmpFile,$postData) { $ch = curl_init($url); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch, CURLOPT_……
不行用不了
Snoopy这个还真是简单易用
要跳转?你就跟着跳转就是了
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 没人会么
推荐使用框架 snoopy
推荐使用框架 snoopy
这个框架不管用,不信你试试
帮你跟了下代码,会在织梦/dede/config.php 文件 里面
if($cuserLogin->getUserID()==-1)
{
header("location:login.php?gotopage=".urlencode($dedeNowurl));
exit();
}
这里调处来,登入成功应该要给你个uid,你看看 在哪了搞下
帮你跟了下代码,会在织梦/dede/config.php 文件 里面
if($cuserLogin->getUserID()==-1)
{
header("location:login.php?gotopage=".urlencode($dedeNowurl));
exit();
}
这里调处来,登入成功应该要给你个uid,你看看 在哪了…… 这个应该是有的,因为都提示登陆成功了
引用 14 楼 jsbba 的回复:帮你跟了下代码,会在织梦/dede/config.php 文件 里面
if($cuserLogin->getUserID()==-1)
{
header("location:login.php?gotopage=".urlencode($dedeNowurl));
exit();
}
这里调处来,登入成……
呵呵 有但是-1 你吧这段去掉 就可以登入进去了
引用 15 楼 dz215136304 的回复:引用 14 楼 jsbba 的回复:帮你跟了下代码,会在织梦/dede/config.php 文件 里面
if($cuserLogin->getUserID()==-1)
{
header("location:login.php?gotopage=".urlencode($dedeNowurl));
……
同样不行,提示
DedeCMS 提示信息!对不起,你没有权限执行此操作!点击此返回上一页>>
你login时抓包一下。然后把里面header所有的信息全部保存下来,包括referer啊,useragent啊。。然后再用curl发这样一个大杂烩的包,看看能不能成功
你login时抓包一下。然后把里面header所有的信息全部保存下来,包括referer啊,useragent啊。。然后再用curl发这样一个大杂烩的包,看看能不能成功 不行的
哦 楼主的代码我证实了一下 是没有问题的 一般的 无验证网站是都能模拟登录的 或许是你这个网站有什么特殊的配置或者 加密验证 你再深入查一下 登录文件的代码
哦 楼主的代码我证实了一下 是没有问题的 一般的 无验证网站是都能模拟登录的 或许是你这个网站有什么特殊的配置或者 加密验证 你再深入查一下 登录文件的代码
thankyou
header("location:login.php?gotopage=".urlencode($dedeNowurl));
dede的登陆类做了限制