CodeIgniter和PhPBB 3.1.3集成

时间:2015-02-18 14:39:01

标签: php codeigniter header phpbb

我开发了一个基于CodeIgniter的网站,最新版本2.2.1,我安装了一个PhPBB论坛(版本3.1.3)。

我想在我的网站上使用论坛的功能(如连接/个人资料等)。 我已经浏览了这个网站:http://www.3cc.org/blog/2010/03/integrating-your-existing-site-into-phpbb3/只是显示我的伪。

我的控制器只是第一段的复制/粘贴

class Forum_test extends CI_Controller{

    function __construct()
    {
        parent::__construct();
    }

    function index()
    {
         define('IN_PHPBB', true);
         $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : 'forum/';
         $phpEx = substr(strrchr(__FILE__, '.'), 1);
         include($phpbb_root_path . 'common.' . $phpEx);
         // Start session management
         $user->session_begin();
         $auth->acl($user->data);
         $user->setup();
    }
}

我的问题是当我尝试使用此代码时,出现以下错误

Fatal error: Call to a member function header() on a non-object in /var/www/forum/phpbb/session.php on line 224

但是,如果我创建一个只有

的简单文档
<?php
define('IN_PHPBB', true);

$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : 'forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management

$user->session_begin();
$auth->acl($user->data);
$user->setup();
?>

它有效(我没有任何错误)

您是否知道我的代码有什么问题?

谢谢。

2 个答案:

答案 0 :(得分:4)

所以...经过长时间的研究后我找到了解决方案......

https://www.phpbb.com/community/viewtopic.php?f=71&t=2287546

解决方案是将全局变量添加到函数索引

global $request;
global $phpbb_container;
global $phpbb_root_path, $phpEx, $user, $auth, $cache, $db, $config, $template, $table_prefix;
global $request;
global $phpbb_dispatcher;
global $symfony_request;
global $phpbb_filesystem;

答案 1 :(得分:1)

我还需要将phpbb集成到codeigniter基础网站并面临许多问题,最终能够做到。如果你需要它,你可以在phpbb integration in codeigniter找到所有代码,它还包含我用来整合和怀疑的phpbb版本。如果你想改进代码。请在github上讨论我。