使用lib-cURL登录PHP论坛并获取页面内容

时间:2009-12-30 23:43:34

标签: php curl phpbb

这是我的代码:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://www.membersite.com/login.php");
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'username=deleted&password=deleted');
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'C:\xampp\htdocs\scrape\cookie.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$store = curl_exec ($ch);

curl_setopt($ch, CURLOPT_URL, "http://www.membersite.com/memberlist.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$page = curl_exec ($ch);

echo $page;

curl_close($ch);

但我不认为它已成功登录,因为该网站(顺便说一句,我自己)没有显示我登录的日志。我知道用户名和密码是正确的,URL也是如此。我得到一个cookie.txt文件,看起来好像数据,但我不确定。

如果我尝试一些基本的调试,就像这样:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://www.membersite.com/login.php");
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'username=deleted&password=deleted');
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'C:\xampp\htdocs\scrape\cookie.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

if(!$store = curl_exec($ch))
{
    echo "login fail";
}

curl_setopt($ch, CURLOPT_URL, "http://www.membersite.com/memberlist.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

if(!$page = curl_exec($ch))
{
    echo "page fail";
}

echo $page;

curl_close($ch);

我在页面上打印了“页面失败”,所以我猜登录不起作用。

有任何帮助吗?感谢。

2 个答案:

答案 0 :(得分:0)

没关系,下载了一个phpBB cURL库并对其进行了排序。

答案 1 :(得分:0)

添加CURLOPT_COOKIEFILE选项,其值与CURLOPT_COOKIEJAR选项相同。

您还需要为每个后续请求使用这两个选项(即您对memberlist.php的请求)。

你可以看到一种方法here