0

我正在尝试编写一个用于分析的脚本。我在 PHP 方面有很好的经验,但在 CURL 方面不是很好。以下脚本的基本目的是,

  1. 使用 PHP 脚本登录到 XYZ.COM 并将 cookie 保存到本地文件。
  2. 展望未来,我想使用这个本地 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.
?>

如果难以理解,请告诉我。

4

0 回答 0