• لاگین کردن در گوگل توسط cURL
    #1
    Note 
    سلام
    بعضی از دوستان سوال پرسیدن که چطور میشه صفحه ای بسازیم و از اونجا تو گوگل لاین کنیم؟
    راه حل استفاده از cURL هست. با استفاده از cURL میتونید مثل یک مرورگر درخواست های http بفرستید. در واقع این Library مثل یک مرورگر عمل میکنه.

    در مثال پایین با بکارگیری cURL میتونیم این کار رو انجام بدیم ، در ضمن این کد تست شده و بدرستی کار میکنه.

    کد php:
    <?php
    $USERNAME 
    'mail@gmail.com';
    $PASSWORD 'passwd';
    $COOKIEFILE 'cookies.txt';

    $ch curl_init();
    curl_setopt($chCURLOPT_CONNECTTIMEOUT30);
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
    curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    curl_setopt($chCURLOPT_COOKIEJAR'COOKIEJAR');
    curl_setopt($chCURLOPT_COOKIEFILE'COOKIEJAR');
    curl_setopt($chCURLOPT_HEADER0);  
    curl_setopt
    ($chCURLOPT_RETURNTRANSFER,1);
    curl_setopt($chCURLOPT_CONNECTTIMEOUT120);
    curl_setopt($chCURLOPT_TIMEOUT120);

    curl_setopt($chCURLOPT_URL
     
     'https://accounts.google.com/ServiceLogin?service=mail&continue=https://mail.google.com/mail/');
    $data curl_exec($ch);

    $formFields getFormFields($data);

    $formFields['Email' $USERNAME;
    $formFields['Passwd'] = $PASSWORD;
    unset(
    $formFields['PersistentCookie']);

    $post_string '';
    foreach(
    $formFields as $key => $value) {
     
       $post_string .= $key '=' urlencode($value) . '&';
    }

    $post_string substr($post_string0, -1);

    curl_setopt($chCURLOPT_URL'https://accounts.google.com/ServiceLoginAuth');
    curl_setopt($chCURLOPT_POST1);
    curl_setopt($chCURLOPT_POSTFIELDS$post_string);

    $result curl_exec($ch);
    if (
    strpos($result'Loading standard view') === false) {
     
       die("Login failed");
    } else {
     
       curl_setopt($chCURLOPT_URL'https://gmail.com');
     
       curl_setopt($chCURLOPT_POST0);
     
       curl_setopt($chCURLOPT_POSTFIELDSnull);

     
       $result curl_exec($ch);
        die(
    'Successfully logged in');
     
       //var_dump($result);
    }

    function 
    getFormFields($data)
    {
     
       if (preg_match('/(<form.*?id=.?gaia_loginform.*?<\/form>)/is'$data$matches)) {
     
           $inputs getInputs($matches[1]);

     
           return $inputs;
     
       } else {
     
           die('didnt find login form');
     
       }
    }

    function 
    getInputs($form)
    {
     
       $inputs = array();

     
       $elements preg_match_all('/(<input[^>]+>)/is'$form$matches);

     
       if ($elements 0) {
     
           for($i 0$i $elements$i++) {
     
               $el preg_replace('/\s{2,}/'' '$matches[1][$i]);

     
               if (preg_match('/name=(?:["\'])?([^"\'\s]*)/i'$el$name)) {
     
                   $name  $name[1];
     
                   $value '';

     
                   if (preg_match('/value=(?:["\'])?([^"\'\s]*)/i'$el$value)) {
     
                       $value $value[1];
     
                   }

     
                   $inputs[$name] = $value;
     
               }
     
           }
     
       }

     
       return $inputs;



    نکته: برای فعال کردن cURL  فایل php.ini که در مسیر نصب php وجود داره رو با یه ویرایشگر متن باز کنید و کد
    کد:
    ;extension=php_curl.dll
    رو با حذف سمیکالن( ; ) از ابتدای اون از حالت کامنت خارج کرده و در نهایت فایل رو ذخیره کنید.

    موفق باشید.

    پاسخ
    ایجاد موضوع جدید   پاسخ به موضوع  

    موضوعات مرتبط با این موضوع...
    موضوع نویسنده پاسخ بازدید آخرین ارسال
    Note کار با CURL WWWorker 0 1,285 08-08-2014 ساعت 13:33
    آخرین ارسال: WWWorker
    Note سوال: انتقال فایل با FTP توسط PHP Ali Developer 1 646 03-07-2013 ساعت 19:45
    آخرین ارسال: SOFTAFZAR

    کاربرانِ درحال بازدید از این موضوع:   1 مهمان