Как получить капчу и сохранить сессию с помощью PHP cURL? - PullRequest
2 голосов
/ 27 марта 2010

ОБНОВЛЕНИЕ: решено

Привет всем, у меня есть, просто сохраните печенье для временного файла и повторно отправьте форму с свернуть и установить куки с предыдущим временный файл :) спасибо всем за ответ:)

Это мой рабочий код

$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 голосов
/ 27 марта 2010

На странице руководства php в curl_setopt, CURLOPT_COOKIEFILE и CURLOPT_COOKIEJAR должны оба указать имя файла. Вы установили для них значение «1» (что может быть допустимым, но это то, что вы хотели?)

...