Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations SkipVought on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

help with cURL script to login into yahoo.

Status
Not open for further replies.

luckyche

Programmer
Feb 12, 2011
1
0
0
IN
i am new to curl .and i m trying to create create a script for my client to log into yahoo and click the confirmation link in emails.
but i am stuck witht he login process only
i made the code below . but still i cant make it work. the problem is yahoo is implementing a captcha challange for this kind of automated headers. do you have any idea ho to make it work again without alerting the captcha challange ?

the header i caught through the livehttp header is as follows:

Content-Length: 347
.tries=1&.src=ym&.md5=&.hash=&.js=&.last=&promo=&.intl=in&.bypass=&.partner=&.u=4ls6cr96lbs8e&.v=0&.challenge=W9w31pCrbdazCcY4mH41fVsyxwd8&.yplus=&.emailCode=&pkg=&stepid=&.ev=&hasMsgr=0&.chkP=Y&.done=http%3A%2F%2Fmail.yahoo.com&.pd=ym_ver%3D0%26c%3D%26ivt%3D%26sg%3D&pad=1&aad=1&login=myyahooid&passwd=mypassword&.persistent=y&.save=&passwd_raw=


PHP:
<?php

    
    $authUrl    = "https: //login.  yahoo  .   com/config/login?";
    $userAgent  = "Mozilla/5.0 (Windows NT 5.1; rv:2.0b11) Gecko/20100101 Firefox/4.0b11";
    $referer    = "http  :  //  my  .  yahoo  .  com";
    $login      = "userid";
    $password   = "password";
    $numPostData = 22;
    $cookieFileJar  = "ycookie.txt";
    $cookie = 0;
    $postData = ".tries=1&.src=ym&.md5=&.hash=&.js=&.last=&promo=&.intl=in&.bypass=&.partner=&.u=4ls6cr96lbs8e&.v=0&.challenge=W9w31pCrbdazCcY4mH41fVsyxwd8&.yplus=&.emailCode=&pkg=&stepid=&.ev=&hasMsgr=0&.chkP=Y&.done=http%3A%2F%2Fmail.yahoo.com&.pd=ym_ver%3D0%26c%3D%26ivt%3D%26sg%3D&pad=1&aad=1&login=$login&passwd=$password&.persistent=y&.save=&passwd_raw=" ;

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);

    // Set the referrer
    curl_setopt($ch, CURLOPT_REFERER, $referer);

    // Set the authentication url
    curl_setopt($ch, CURLOPT_URL, $authUrl);

    // Set number of post fields
    curl_setopt($ch, CURLOPT_POST, $numPostData);

    //Set post data in key=value pair such as login=yourusername
    curl_setopt($ch, CURLOPT_POSTFIELDS, $numPostData);

    //Set filename for storing cookie information
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFileJar);

    //Set ffilename for checking the stored cookie information
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFileJar);

    //Set option for cookie
    curl_setopt($ch, CURLOPT_COOKIE, $cookie);
 
 //set this to output the result as string and not output directly ot browser
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

 //set this value to 1 if you want to redirect to the url you provided as service url
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
 
 //Set this option if you do not want to verify ssl
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
 
 //set this option if you do not want to verify peer's certificate
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
 
 //now execute the curl
    $res = curl_exec($ch);
     echo $res;
 //check if the username and password is valid
    if ((preg_match("/invalid/i", $res)) || (preg_match("/not yet taken/i", $res))) {
        echo "Invalid Login";
    }
    else {
  //if  CURLOPT_FOLLOWLOCATION is set to 1 then after logging in successfully user is directed to url that is specified as service url
        echo "Logged In";
    }
?>


then i have to work for clicking confirmation links in mails. please suggest me some ways.i would be very grateful to you :)
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top