CURL帖子表单,验证码不起作用

时间:2015-11-03 08:12:28

标签: php curl captcha

我已经编写了一个curl函数用于从网站获取验证码,然后在我的网站上显示。用户将输入值和验证码并提交。 我将从用户获得价值峰会并重新发布到网站以获取数据信息。 在我编写一个文件之前,它可以工作。但现在我把它分成三个文件只是复制代码,但现在它没有用。

请帮帮我。 我的代码卷曲功能

private function makeCurl($url, $data = null) {

        $ch = curl_init();
        $headers = array();
        $headers[] = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
        $headers[] = 'Connection: keep-alive';
        $headers[] = '_eosAjax: xml';
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:41.0) Gecko/20100101 Firefox/41.0');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);  
        curl_setopt($ch, CURLOPT_BINARYTRANSFER, TRUE);   
        curl_setopt($ch, CURLOPT_COOKIE, TRUE);
        curl_setopt($ch, CURLOPT_COOKIEJAR,$this->myCookie);
        curl_setopt($ch, CURLOPT_COOKIEFILE,$this->myCookie);      
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_TIMEOUT, 10);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);

        if($data != null) {
            $data_string = "";
            foreach($data as $key=>$value) { $data_string .= $key.'='.$value.'&'; }
            rtrim($data_string, '&');
            curl_setopt($ch,CURLOPT_POST, TRUE);
            curl_setopt($ch,CURLOPT_POSTFIELDS, $data_string);
        }
        $result = curl_exec($ch);
        curl_close($ch);

        return $result;
    }

绘制验证码功能

public function drawCatcha() {
        $result = $this->makeCurl(HOST."zdxt/gjyjqcgzcx/gjyjqcgzcx_drawValidCode.action");  
        $ImageCaptcha=base64_encode($result);

        return "data:image/jpeg;base64,".$ImageCaptcha;
    }

检查验证码功能

private function checkCaptcha($code) {
        $data = array(
            "submitType"=>1,
            "ajax"=>"<?xml version=\"1.0\" encoding=\"utf-8\"?><root><params><param><key>validcode</key><value>{$code}</value></param></params><data></data></root>"
        );

        $result = $this->makeCurl(HOST."zdxt/gjyjqcgzcx/gjyjqcgzcx_validCode.action", $data);

        return $result;
    }

获取信息功能

public function getInfo($code, $port) {
        echo $this->checkCaptcha($code);
        $data = array(
            "submitType" => 2,
            "ajax" => "<?xml version=\"1.0\" encoding=\"utf-8\"?><root><params><param><key>vYjhm</key><value>RM649904215CN</value></param><param><key>vYjhmLst</key><value>'RM649904215CN'</value></param><param><key>validcode</key><value>{$code}</value></param></params> <data><criteria><_entity></_entity></criteria><page><begin>0</begin><length>100</length><count>-1</count><isCount>true</isCount></page></data></root>"
        );
        $result = $this->makeCurl(HOST."zdxt/gjyjqcgzcx/gjyjqcgzcx_gjyjqcgzcxDqztQueryPage.action", $data);
        $info = simplexml_load_string($result);
        return $info;

    }

我现在有三个档案。具有所有功能的Post.php与curl一起工作。 input.php显示表单并调用draw captcha。和result.php调用获取信息 还有我想要获取信息的网站 http://intmail.183.com.cn/zdxt/jsp/zhdd/gjyjgzcx/gjyjqcgzcx/gjyjqcgzcx.jsp

0 个答案:

没有答案