phpBB会话集成:在函数中使用数据
我正在尝试将phpBB3会话和数据集成到外部网站中。我已经遵循了这个原则,也读了一些,但我还没有找到一个具体的解决方案,我的问题 在我的站点中,我包含一个phpbb.php,其中包含以下代码:phpBB会话集成:在函数中使用数据,php,function,session,integration,phpbb,Php,Function,Session,Integration,Phpbb,我正在尝试将phpBB3会话和数据集成到外部网站中。我已经遵循了这个原则,也读了一些,但我还没有找到一个具体的解决方案,我的问题 在我的站点中,我包含一个phpbb.php,其中包含以下代码: <?php define('IN_PHPBB', true); $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : '../../forums/'; $phpEx = substr(strrchr(__FILE__,
<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : '../../forums/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
?>
这将根据用户是否登录论坛,在我使用的模板系统中加载不同的模板,如果用户登录论坛,它还会打印他的用户名。所有这些都很好
然而,问题是当我尝试使用函数时:
function print_login() {
if ($user->data['user_id'] == ANONYMOUS)
{
return "Not currently logged in. [ Log in ]";
}
else
{
if ( $user->data['user_colour'] != null)
{
return "Hello, <b style=\"color: #".$user->data['user_colour']."\">".$user->data['username']."</b>. [ Log out ]";
}
else return "Hello, ".$user->data['username'].". [ Log out ]";
}
}
函数打印\u登录(){
如果($user->data['user\u id']==匿名)
{
返回“当前未登录。[登录]”;
}
其他的
{
如果($user->data['user\u color']!=null)
{
返回“Hello,data['user\u color']”“\”>“$user->data['username']”。[注销]”;
}
否则返回“Hello,”.$user->data['username']。“[logout]”;
}
}
如果我这样做,即使函数位于包含phpbb.php的页面上,或者甚至在phpbb.php内部,会话也不会被识别,结果总是:
你好。[注销]
为什么我定义的函数不能访问phpBB数据?PHP变量必须引用全局变量,因为
<?php
$a = 2;
function test() {
echo $a;
}
?>
嗯,我也读过类似的东西:“记住,如果你通过函数或对象登录,通过全局/全局函数将其包含进来,那么$auth变量/类在所述函数/对象中是可用的。”但是我没有完全理解它,添加“global$user;”行,甚至添加一个额外的“global$auth”行也没有任何作用。也没有向函数添加参数并向其传递$user。结果保持不变你能找到用户的类别(在phpbb包含的文档中)?它很长,所以我把它放在一个粘贴箱中:这里还有一些文档:我发现了问题。这是因为我在phpbb.php之后包含了我的db.php,其中包含了与我的站点MySQL数据库相关的代码。php还使用$user变量,该变量导致与phpBB代码冲突。将您的建议与全局变量一起使用,然后按预期修复问题。非常感谢!:)很高兴我能帮忙。
<?php
$a = 2;
function test() {
echo $a;
}
?>
<?php
$a = 2;
function test() {
global $a;
echo $a;
}
?>
function print_login() {
global $user;
if ($user->data['user_id'] == ANONYMOUS)
{
return "Not currently logged in. [ Log in ]";
}
...