getting vbulletin captcha image with curl

Posted by ermac2014 on Stack Overflow See other posts from Stack Overflow or by ermac2014
Published on 2010-04-27T13:42:16Z Indexed on 2010/04/28 3:53 UTC
Read the original article Hit count: 368

Filed under:
|
|
|
|

hi I need to download Vbulletin captcha images on my HDD "from vbulletin register page" using curl and PHP. I really need to get samples of captcha images from several VBulletin boards. I'm collecting these samples for research purposes. anyway, here is what I done with curl till now. 1- download register.php page. 2- parse the downloaded page to get captcha image url. 3- download that image.

now I have done step 1 and 2 correctly. but in step 3 when I try to download the captcha image I don't get the captcha. I just get either a very tiny blank gif picture. or I get a png picture with vbulletin word on it. I really don't know what i'm doing wrong. I tried to output the html and push it to the browser the image shows correctly. but thats not what I want. I want to download the image and save it on my HDD.

here are some codes I've been working on:

//get contents with curl
function get_content($url)  
{ 
    $theString = parse_url($url);
    $cookieName = $theString['host'];

    $ch = curl_init();  
    curl_setopt($ch, CURLOPT_URL, $url."register.php");  
    curl_setopt($ch, CURLOPT_REFERER, $url."register.php");
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)');  
    curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies/cookie.txt"); //saved cookies
    curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies/cookie.txt"); //saved cookies
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

    $string = curl_exec ($ch);  
    //print_r(curl_getinfo($ch));
    curl_close ($ch);   
    return $string;      
}

//vbulletin main page
$url = 'http://blavbulletin.com/';

//get the page
$results = get_content($url); 

if (preg_match_all('/<img[^>]*id\=\"imagereg\"[^>]*src\=\"([^\"]*)\"[^>]*>/s', $results , $captchaimages))
    {
      $captcha = $captchaimages[1][0];

          echo "<img src='$url"."$captcha'>"; //when echoed the pic shows correctly

          //now get the pic
          $file = get_content("$url"."$captcha");

          //save the pic on HDD
      file_put_contents("captcha.jpg",  $file);

    }

any help would be appreciated.. regards,

© Stack Overflow or respective owner

Related posts about vbulletin

Related posts about php