2011-05-23 191 views
2

我正在嘗試使用cURL和PHP登錄到megaupload.com。我想要做的是登錄,所以我有高級訪問權限,然後下載文件。這對於我的登錄方法的代碼:使用cURL和PHP登錄到Megaupload

public function login() 
{ 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, "http://www.megaupload.com/?c=login"); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, "username={$this->username}&password={$this->password}&login=1"); 
    curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt"); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $store = curl_exec($ch); 
    curl_close ($ch); 
} 

,這是我的index.php:

<?php 

include_once("plugins/megaupload.class.php"); 

$megaupload = new Megaupload("username", "password"); 

$megaupload->login(); 

?> 

,但似乎沒有發生。當我運行腳本時,cookie.txt不會保存在任何地方。我從Firebug獲得POST值:

login=1&password=password&redir=1&username=username 

這是當我使用他們的網站登錄時通過表單發送的內容。是的,用戶名和密碼是正確的。

感謝您的幫助!

編輯:好吧,它似乎是實際登錄,因爲我可以訪問我的帳戶頁面,除非我登錄,否則我無法訪問。但這仍然無法解決cookie.txt文件正在保存...

回答

0

看來CURLOPT_COOKIEJAR選項與相關URL有一些問題。嘗試設置一個絕對路徑:

curl_setopt($ch, CURLOPT_COOKIEJAR, realpath("cookie.txt"));

1

你需要確保你在哪裏嘗試存儲cookie中的目錄是世界可寫的。另外,您應該使用絕對路徑(如果可以,請在您的webroot之外設置一個單獨的文件夾),並確保適當的權限。

你也應該設置CURLOPT_COOKIEFILE選項:

url_setopt($ch, CURLOPT_COOKIEFILE, ABS_PATH_TO_COOKIE_TXT);