NYTimes.com giriş için Curl kullanarak sorunu

0 Cevap php

UPDATE: kodumu çalışmaları çıkıyor. Tarayıcı önceki başarısız yanıtı önbelleğe edildi. Işaretçileri için teşekkürler.

Ben bir prototip inşa ediyorum ve yapmak istediğim bir şey, kullanıcının kimlik bilgilerini sağlayarak NYTimes.com geçerli bir üyesi ise bir hizmeti gerçekleştirmek olduğunu.

Curl kullanarak, ben siteye bir giriş yapmak için çalışıyor, ve sonra başarı veya başarısızlık için kontrol ediyorum.

Benim kod aşağıda, hataları dönmek ama giriş sayfasında beni geri düşer değildir:

<?php
class Login {

    function Verify() {
        print $this->getContent();
    }

    function getContent() {

        $url    = 'http://www.nytimes.com/auth/login';

        // URI can be any NYT web page to be redirected to upon successful login
        // SAVEOPTION and Submit2 are Optional but in original web form so included here

        $fields = array(
            'is_continue'=> 'true',
            'USERID'     => urlencode('ENTER_YOUR_USERNAME'),
            'PASSWORD'   => urlencode('ENTER_A_PASSWORD'),
            'URI'        => urlencode('http://www.nytimes.com/robots.txt'), 
            'OQ'         => '',
            'OP'         => '',
            'SAVEOPTION' => 'YES',
            'Submit2'    => 'Log In'
        );

        $fields_string = '';

        if(!$curld = curl_init($url)) {
            echo "Could not connect to the specified resource";
               exit;
        }
        $ch        = curl_init();
        $useragent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1";

        foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } 
        rtrim($fields_string,'&');

        curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_COOKIEJAR, "curl_login_cookie.txt");

        curl_setopt($ch ,CURLOPT_POST, count($fields));
        curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);

        ob_start();
        curl_exec ($ch);

        curl_close ($ch);
        $result = ob_get_contents();
        ob_end_clean();

        return $result;
    }
}

$login  = new Login;
$result = $login->Verify();
?>

Herhangi bir işaretçiler, veya önerilerinizi bekliyoruz.

0 Cevap