我正在尝试编写一个用于分析的脚本。我在 PHP 方面有很好的经验,但在 CURL 方面不是很好。以下脚本的基本目的是,
- 使用 PHP 脚本登录到 XYZ.COM 并将 cookie 保存到本地文件。
- 展望未来,我想使用这个本地 cookie 文件,然后想从页面(XYZ.COM)中提取详细信息,这些页面只有在登录过程后才能访问。一切都是通过脚本。因此,必须进行身份验证才能访问这些页面。
我可以使用我的详细信息(通过脚本成功)对网站进行身份验证,但我无法存储 cookie,并且下次调用该页面时,它会再次要求进行身份验证。我无法理解脚本哪里出了问题/我的方法是错误的。
这是我创建的脚本:
<?php
function postData($url, $params)
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:11.0) Gecko/20100101 Firefox/11.0");
$cookie_file = "cookie1.txt";
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
function getData($url)
{
$ch = curl_init($url);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
$params = array(
"login" => "USERNAME",
"pass" => "PASSWORD",
"remember" => 0,
);
$url = "http://www.WEBSITE_WITH_POST_FORUM_TARGET.com/services/login";
echo postData($url, $params);
echo getData("http://www.SAME_WEBSITE.com"); // HERE WHEN I LOAD THE WEBSITE, IT AGAIN ASKS FOR AUTHENTICATION.
?>
如果难以理解,请告诉我。