使用Curl -PHP登录远程URL

时间:2013-06-19 14:49:42

标签: php curl

我正在尝试使用 CURL 在此处http://studio.smartshoot.com/filmmaker/home登录,但似乎无法使其正常工作。结果是“未启用JavaScript您的浏览器。请在浏览器设置中启用JavaScript,然后再继续使用此网站。“

到目前为止,我已尝试过以下内容:

<?

$username="username"; 
$password="password"; 
$url="http://ABC.COM?q=login&destination=filmmaker%2Fhome";
$cookie="cookie.txt"; 

$postdata = "name=".$username."&pass=".$password."&edit-user-login=user_login&edit-name=".$username."&remember_me=1"; 



$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 
curl_setopt ($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie); 
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookie); 
curl_setopt ($ch, CURLOPT_REFERER, $url); 

curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); 
curl_setopt ($ch, CURLOPT_POST, 1); 
$result = curl_exec ($ch); 

echo $result;  

curl_close($ch);
?>

2 个答案:

答案 0 :(得分:3)

问题的答案。 cURL不会执行JavaScript,因此即使您已经登录,您也可以获得作者为noscript用户代理打算提供的任何消息。

答案 1 :(得分:0)

这很简单 - 一个页面测试,如果您启用了JavaScript,则使用JavaScript执行命令,这将删除诸如“您没有启用JavaScript”之类的内容。

因此,如果您没有启用JS,则错误不会消失。

可选(甚至更可能)JavaScript会将浏览器重定向到实际页面,如果没有启用JS - 再次,您将保留在第一页,表示您没有启用JS ... < / p>

PHP curl不是一个完整的浏览器。它只是一个用于与服务器通信的库,使用HTTP,FTP等。它既不渲染也不解析。

对于这个功能,你需要一个JavaScript引擎......据我所知,PHP中没有一个功能完全正常。