curl验证码

分为3个文件,a.php是验证码输入页面,i.php是用来得到验证码,b.php是用于发表留言的。我用的是http://www.webbeast.cn/?action=show&;id=26&page=1网页进行测试。
注意:请修改php.ini,将php_curl.dll前的注释去掉,然后重启apache服务器。在使用之前,请建一个temp文件夹,这个文件夹是用来存放cookie文件的。因为不能发表重复的贴子,所以在测试之前请到b.php里修改。代码一看就明白的。。。^_^


a.php

   
   
   
   
      a
     
     
     
     
   
   
   
   


   
   
   

   
   



i.php

        session_start();
    $cookie_jar=tempnam("temp","webbeast");
    $_SESSION['cookie_jar']=$cookie_jar;
    $ch=curl_init();
    curl_setopt($ch,CURLOPT_URL,"http://www.webbeast.cn/include/seccode.php");
    curl_setopt($ch,CURLOPT_REFERER,"http://www.webbeast.cn/?action=show&id=26&page=1");
    curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_jar);
    curl_setopt($ch,CURLOPT_COOKIEFILE,$cookie_jar);
    curl_setopt($ch,CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,false);
    if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'msie')===false)
    {
        header("content-type:image/jpg");
    }
    curl_exec($ch);
    curl_close($ch);
    ?>




b.php

        session_start();
    ?>
   
   
   
   
      b
     
     
     
     
   
   
        if(empty($_SESSION['cookie_jar'])) exit();
    $cookie_jar=$_SESSION['cookie_jar'];
    $verify=$_POST['verify_code'];
    $ch=curl_init();
    curl_setopt($ch,CURLOPT_URL,"http://www.webbeast.cn/post.php");
    curl_setopt($ch,CURLOPT_REFERER,'http://www.webbeast.cn/?action=show&id=26&page=1');
    curl_setopt($ch,CURLOPT_POST,1);
    curl_setopt($ch,CURLOPT_POSTFIELDS,"articleid=26&formhash=2d47d0be&username=cat&password=&url=&content=oh,MyGOD!&clientcode=".$verify."&action=addcomment");
    curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_jar);
    curl_setopt($ch,CURLOPT_COOKIEFILE,$cookie_jar);
    curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,false);
    curl_exec($ch);
    curl_close($ch);
    ?>
   
   



此例子在IE6和FF2.0中测试通过!

你可能感兴趣的:(php&框架)