模拟登陆织梦,版本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

解决方案 »

  1.   

    推荐使用框架 snoopy
    google一下即可。
      

  2.   

    要跳转?你就跟着跳转就是了
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
      

  3.   

    应该是织梦那边有什么cookie没有统一吧?
      

  4.   

    看了楼主的代码,我倒想起了之前弄的一个东西原来是错在这个地方了
    之前,我是一起写的。
    [code]
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); 
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); 
    [/code]
      

  5.   

    试试这个看行不行
    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;  
    }     
    ?> 
      

  6.   

    帮你跟了下代码,会在织梦/dede/config.php  文件 里面if($cuserLogin->getUserID()==-1)
    {
        header("location:login.php?gotopage=".urlencode($dedeNowurl));
        exit();
    }
    这里调处来,登入成功应该要给你个uid,你看看 在哪了搞下
      

  7.   


    同样不行,提示 
    DedeCMS 提示信息!对不起,你没有权限执行此操作!点击此返回上一页>>
      

  8.   

    你login时抓包一下。然后把里面header所有的信息全部保存下来,包括referer啊,useragent啊。。然后再用curl发这样一个大杂烩的包,看看能不能成功
      

  9.   

    header("location:login.php?gotopage=".urlencode($dedeNowurl));