我使用的是phpbb 3.0.12和php 5.4.28。
我有一个网站,其中我使用phpbb作为论坛。最近我想整合登录程序,所以我不需要登录两次。
要做到这一点(并使其看起来更好)我决定将论坛本身放在一个。我遇到了一些问题,所以最后我决定不将论坛index.php放在iframe中,而是将整个东西包装在一个名为wrap.php的文件中。这种方法效果更好,但并不完全。
我对phpbb中的index.php进行了一些小改动,我主要检查是否定义了IN_PHPBB,如果是,那么它会跳过登录过程:
if (!defined("IN_PHPBB"))
{
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);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');
}
我的wrap.php看起来像这样:
<?php
$username = $_GET['name'];
$password = '';
// phpBB inclusion protection
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);
if (!isset($_GET['f']))
{
// Start session management
$user->session_begin();
$auth->acl($user->data);
// login to forum
$result = $auth->login($username, $password, 1);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
$user->setup('viewforum');
include('index.php');
}
else
{
$user->session_begin();
$auth->acl($user->data);
// login to forum
$result = $auth->login($username, $password, 1);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
include($phpbb_root_path . 'includes/bbcode.' . $phpEx);
include('viewtopic.php');
}
?>
如果我要转到特定主题,则会在回合中发送$ _GET [&#39; f&#39;]和$ _GET [&#39; t&#39;]。
好的......症状。对于IE的初学者来说......我来到一个空白的页面。如果我点击登录索引,我会在没有登录问题的情况下将其带到那里。为什么?有没有办法告诉它直接进入董事会指数?
在Chrome上它根本不起作用,它甚至不会因某种原因登录。所以我猜这与饼干没有正确设置有关。
如果我去一个特定主题 - 在IE上它只是声称我不被允许查看该主题,我点击登录索引然后我可以浏览论坛并没有问题。
在Chrome上和以前一样,因为我没有登录,我收到一条消息,说明我没有被授权。点击登录索引会将我置于登录页面。