如何在登录后完全加载页面?

时间:2014-07-29 06:15:32

标签: javascript php curl laravel

我使用php和curl登录网站并访问网页包含javascript和ajax,我想在返回页面之前完全加载页面。

是否有其他方式登录网站并完全加载网页包含ajax等?

我可以将Cookie存储在Broswer中,并通过php代码(laravel)访问该页面,如return Redirect::to($url);

$username = 'xxx';
$password = 'xxxx';
$loginUrl = 'http://www.site/com/login.php';
$url='http://www.site/com/wood.php';
define("COOKIE_FILE", "c:\cookie.txt");

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $loginUrl);
curl_setopt($curl, CURLOPT_COOKIESESSION, true);
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($curl, CURLOPT_COOKIEJAR, COOKIE_FILE); 
curl_setopt ($curl, CURLOPT_COOKIEFILE, COOKIE_FILE);
curl_setopt( $curl, CURLOPT_COOKIE, COOKIE_FILE );
curl_setopt ($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_BINARYTRANSFER, true);
curl_setopt ($curl, CURLOPT_ENCODING, "");
curl_setopt ($curl, CURLOPT_HEADER, true);
curl_setopt ($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, 'username='.$username.'&password='.$password);
curl_setopt($curl, CURLOPT_VERBOSE, 0);
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 120);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 115);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

$store = curl_exec($curl);

curl_setopt($curl, CURLOPT_URL, $url);

$content = curl_exec($curl);

curl_close($curl);

修改1:

我想登录网站并在浏览器编程中保存cookie,任何人都知道如何使用任何编程语言php,javascript,c#等来做到这一点?

1 个答案:

答案 0 :(得分:0)

您只能加载页面本身为您提供的任何HTML。

cURL将执行您的POST请求并在网站上授权您。但它无法发出AJAX请求。

如果您还希望通过AJAX请求接收动态添加到页面的部分 - 您将需要一个浏览器(将执行这些查询)。或者,您可以自己使用cURL模拟这些查询。

使用Firefox的Firebug插件,查看已完成的AJAX请求,参数是什么等。登录网站后 - 保留cookie,并发出必要的AJAX请求。