精通php的curl的进,有点难

php中文网
发布: 2016-06-23 14:17:16
原创
930人浏览过

模拟登陆织梦,版本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);?>
登录后复制


 登陆成功后要跳转到 http://localhost/dedecms/dede/article_add.php?channelid=1


回复讨论(解决方案)

表示没看懂,坐等高人,进来学习

推荐使用框架 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的登陆类做了限制

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号