如何使用PHP cURL检索验证码并保存会话?

时间:2010-03-27 01:00:30

标签: php curl save captcha

更新:已解决

  

大家好,我已经知道了,只需保存cookie   到临时文件,并重新提交表单   用以前的卷曲和设置饼干   临时文件:)感谢所有回复:)

这是我的工作代码

$ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url_register);  
        curl_setopt($ch, CURLOPT_USERAGENT, $this->useragent);
        curl_setopt($ch, CURLOPT_COOKIEJAR, $this->cookie); 
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);    
        $out['result']  = curl_exec($ch); 
        $out['error']   = curl_error($ch);
        $out['info']    = curl_getinfo($ch);
        curl_close($ch);

对于下一次卷曲,只需使用 CURLOPT_COOKIEFILE 就像这样

/* fetch captcha url with existed cookie */
            $ch = curl_init($captcha_url);
            curl_setopt($ch, CURLOPT_USERAGENT, $this->useragent);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
            curl_setopt($ch, CURLOPT_COOKIEFILE, $this->cookie); 
            curl_setopt($ch, CURLOPT_FILE, $fp); 
            $out2['result'] = curl_exec($ch);
            $out2['error']  = curl_error($ch);
            $out2['info']   = curl_getinfo($ch);
            curl_close($ch);

大家好,

我正在创建一些通过php curl提交内容的脚本。首先获取会话和验证码,用户必须提交验证码以进行最终提交。

问题是我无法获取验证码,我尝试使用此代码和preg_match来获取图像标记并将其返回

    $ch = curl_init();

 curl_setopt($ch, CURLOPT_URL,$url);  
 curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2');
 curl_setopt($ch, CURLOPT_HEADER, 0);
 curl_setopt($ch, CURLOPT_COOKIE, 1);
 curl_setopt($ch, CURLOPT_COOKIEJAR, "1");
 curl_setopt($ch, CURLOPT_COOKIEFILE, "1");
 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);    
    $result = curl_exec($ch);  
    curl_close($ch);

但没有运气,我试图提交的页面是http://abadijayaiklan.co.cc/pasang-iklan/

我希望有人可以帮助我:)

谢谢和问候

1 个答案:

答案 0 :(得分:0)

curl_setopt上的php手册页中,CURLOPT_COOKIEFILECURLOPT_COOKIEJAR都应指定文件名。你把它们设置为'1'(这可能是有效的,但这是你想要的吗?)