2

我正在尝试 使用http://studio.smartshoot.com/filmmaker/homeCURL登录这里,但似乎无法使其正常工作。结果是它显示“您的浏览器中未启用 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);
?>
4

2 回答 2

3

答案就在问题中。cURL 不执行 JavaScript,因此即使您已登录,您也会收到作者为 noscript 用户代理准备的任何消息。

于 2013-06-19T14:52:59.437 回答
0

这很简单——一个页面测试,如果你启用了 JavaScript,通过使用 JavaScript 执行一个命令,这将删除诸如“你没有启用 JavaScript”之类的东西。

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

可选地(甚至更有可能)JavaScript 会将您的浏览器重定向到实际页面,如果 JS 未启用 - 同样,您将停留在第一页,这表示您没有启用 JS...

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

对于此功能,您需要一个 JavaScript 引擎……据我所知,PHP 中没有一个功能齐全的引擎。

于 2013-06-19T14:52:52.503 回答