2011-05-23 102 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);