首页 / PHP / phpBB会话集成:在函数中使用数据
phpBB会话集成:在函数中使用数据
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了phpBB会话集成:在函数中使用数据,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1812字,纯文字阅读大概需要3分钟。
内容图文
我正在尝试将phpBB3会话和数据集成到外部网站中.为此,我遵循了official resource,也阅读了一些helpful tips,但是我还没有找到针对我的问题的具体解决方案.
进入我的网站,我包含一个phpbb.php,其中包含以下代码:
<?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();
?>
根路径配置良好,一切似乎正常,我可以使用以下代码在站点上使用数据(示例):
if ($user->data['user_id'] == ANONYMOUS)
{
$tpl = new USPTemplate();
$tpl->load("error_nologin.tpl");
$tpl->display();
}
else
{
$tpl = new USPTemplate();
$tpl->load("review_submit.tpl");
$tpl->assign("test",'Thanks for logging in, ' . $user->data['username']);
$tpl->display();
}
这将根据用户是否登录到论坛来使用我正在使用的模板系统加载不同的模板,如果用户已登录,则还会打印其用户名.所有这些都很好.
问题是,当我尝试使用函数时:
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 ]";
}
}
如果我这样做,即使该函数在包含phpbb.php的页面上,甚至在phpbb.php本身内,该会话也不会被识别,结果始终是:
Hello, . [ Log out ]
为什么我定义的函数无法访问phpBB数据?
解决方法:
PHP变量必须引用全局变量,因为
<?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 ]";
}
...
内容总结
以上是互联网集市为您收集整理的phpBB会话集成:在函数中使用数据全部内容,希望文章能够帮你解决phpBB会话集成:在函数中使用数据所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。