我有以下 php 代码登录到受密码保护的页面并获取受保护的页面。脚本工作正常,但我只想使用登录功能一次,如果我想在同一个域中获取另一个受保护的页面。
我想使用 cookie 文件打开下一个受保护的页面,而不是再次使用登录功能!换句话说,我只想绕过登录步骤来获取其他受保护的页面。
谁能告诉我如何做到这一点?
注意:我的登录功能不会创建任何 cookie,我没有在与脚本相同的文件夹中看到它!谁能告诉我为什么?
<?
$ch=login();
$html=downloadUrl('http://www.example.com/page1.asp', $ch);
////echo $html;
function downloadUrl($Url, $ch){
curl_setopt($ch, CURLOPT_URL, $Url);
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_REFERER, "http://www.google.com/");
curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$output = curl_exec($ch);
return $output;
}
function login()
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/login.asp'); //login URL
curl_setopt ($ch, CURLOPT_POST, 1);
$post_array = array(
'txtUserName'=>'brad',
'txtPassword'=>'bradpassword',
);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $post_array);
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$store = curl_exec ($ch);
return $ch;
}
?>
<html>
<br>
<textarea rows="30" cols="150"><?PHP print_r($html); ?></textarea>
</html>