首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >phpbb3 curl登录

phpbb3 curl登录
EN

Stack Overflow用户
提问于 2012-10-21 05:15:13
回答 1查看 1.5K关注 0票数 0

我正在尝试用curl为phpbb3.0.10做一个自动登录机器人。论坛返回“您已成功登录”。但在那之后,当我试图转到站点中的另一个页面并使用file_get_contents获取源代码时,或者即使我等待页面将我重定向到index.php,它也会再次要求我登录。重点是我在localhost上做这些测试,而论坛在另一台服务器上,这就是为什么我使用curl。下面是我的代码:

代码语言:javascript
复制
<?php
$urltopost = "http://www.site.com/phpbb3eng/ucp.php?mode=login";
$fget = file_get_contents($urltopost);
$sid_a = explode('index.php?sid=',$fget);
$sid_b = explode('"',$sid_a[1]);
$sid = $sid_b[0];
$datatopost = array (
'username' => "bot",
'password' => "123456789asd",
'autologin' => "1",
'viewonline' => "1",
'redirect' => "./ucp.php?mode=login",
'sid' => "$sid",
'redirect' => "index.php?sid=$sid",
'login' => "login"
);

$ch = curl_init ($urltopost."&sid=$sid");
curl_setopt ($ch, curlopt_post, true);
curl_setopt ($ch, curlopt_postfields, $datatopost);
curl_setopt ($ch, curlopt_returntransfer, true);
curl_setopt($ch, curlopt_useragent, 'mozilla/5.0 (windows; u; windows nt 6.1; en-us; rv:1.9.1.2) gecko/20090729 firefox/3.5.2 gtb5');
$returndata = curl_exec ($ch);
$code = $returndata;
echo htmlspecialchars($code); //returns source with successful login
$code2 = file_get_contents("http://www.site.com/phpbb3eng/index.php"); 
echo "<br /><br /><br />".htmlspecialchars($code2); // return login form
?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-21 05:40:46

你必须设置cookie。查看文档:http://php.net/manual/en/function.curl-setopt.php

代码语言:javascript
复制
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");

当然,您必须确保cookie.txt文件存在,并且您具有写入权限。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12992757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档