Posted on 11-05-2009
Filed Under (技术) by waterlin

在许多情况下,我们需要给网站建一个论坛,当然不可能自己从头开始写一个完整的论坛出来。在这种情况下,比较经济实惠的做法是,采用一个开源代码的论坛程序,然后做好Single sign-on的改造工作。

用phpBB论坛程序能非常方便地与你的网站进行整合,官方网站分别提供了phpBB3的sessions集成phpBB2的sessions集成样板文章。因为官方已经停止了对phpBB2的维护,所以,这里就简单介绍一下phpBB3 Sessions的桥接方法。

首先,把下面这段代码加到你需要桥接phpbb3的页面里:

<?php
define(‘IN_PHPBB’, true);
$phpbb_root_path = (defined(‘PHPBB_ROOT_PATH’)) ? PHPBB_ROOT_PATH : ‘./’;
$phpEx = substr(strrchr(__FILE__, ‘.’), 1);
include($phpbb_root_path . ‘common.’ . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
?>

这里需要注意的是,$phpbb_root_path变量是定义你的phpBB3与你当前文件的相对路径,你需要根据你的实际情况来进行修改。比如说,我的phpbb3就是安装在forum目录下的,我应该替换成如下代码:

$phpbb_root_path = (defined(‘PHPBB_ROOT_PATH’)) ? PHPBB_ROOT_PATH : ‘./forum/’;

千万不要忘记最后的那个”/”目录字符,否则下面的代码会出错。

接下来就是判断是否有用户登陆了,如果有的话,则输出欢迎消息,如果没有的话,则输出提示登陆的消息。

<?php
if ($user->data[‘user_id’] == ANONYMOUS)
{
echo ‘Please login!’;
}

else
{
echo ‘Thanks for logging in, ‘ . $user->data[‘username_clean’];
}
?>

通过这样的方法,就能轻松地访问phpBB3的sessions了。更多的变量说明,可以查阅官方手册。只要把这些代码封装好,就能很好地操作phpBB3的sessions,达到整合平台的目的。

© 2009, 浏忙大爆炸. All rights reserved.
除非注明,浏忙大爆炸文章均为原创,转载请以链接形式标明本文地址。

Post a Comment
Name:
Email:
Website:
Comments: