1
更新:變成我的代碼工程。瀏覽器緩存了以前失敗的響應。感謝指針。使用Curl登錄到NYTimes.com的問題
我正在構建一個原型,我想要做的一件事就是執行一項服務,如果用戶是NYTimes.com的有效成員,那麼通過提供他們的憑據。
使用curl,我試圖執行登錄到該網站,然後檢查成功或失敗。
我的代碼,下面,不返回錯誤,但我滴回到登錄頁面:
<?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();
?>
任何指針或建議表示歡迎。
爲什麼用戶想給你他們的nytimes.com憑證? – 2010-08-27 19:44:10
捲曲嗎?我不是PHP或Curl大師,但我認爲這只是獲得。 – tster 2010-08-27 19:46:37
@tster curl絕對可以POST。 – 2010-08-27 19:47:24