0

<div id="phpbbBox"><?php

define('IN_PHPBB', true);
$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();


if($user->data['is_registered'])
{

    echo "Hello " . "<a href=\"http://cgoava.com/forum/memberlist.php?mode=viewprofile&un=" . $user->data['username'] . "\">" . $user->data['username'] . "</a>"; //User is already logged in
    echo "<br /> You have " . "<a href=\"http://cgoava.com/forum/ucp.php?i=pm&folder=inbox\">" . $user->data['user_new_privmsg'] . " new PM!</a> ";
    echo "<br /> Last visit: " . $user->format_date($user->data['session_last_visit']);

}
else if(isset($_POST['login']))
{
    $username = request_var('username', '', true);
    $password = request_var('password', '', true);
    $autologin = (!empty($_POST['autologin'])) ? true : false;

    $result = $auth->login($username, $password, $autologin);

    if ($result['status'] == LOGIN_SUCCESS)
    {
        //User was successfully logged into phpBB


        // append/replace SID
        $redirect = reapply_sid($_SERVER['PHP_SELF']);
    meta_refresh(0, $redirect);
    echo "<script type=\"text/javascript\">
    location.reload();
    </script>";
    }
    else
    {
        echo 'Bad Login ' . $username; //User's login failed
    }
}
else
{
    echo '<form method="POST" action="">
        <input type="text" name="username" size="10">
        <input type="password" name="password" size="10"><br />
         Remember Me?: <input type="checkbox" name="autologin">
        <input type="submit" value="Submit" name="login">
        </form>';
}
?></div>

这一切都适用于:www.example.com/page.php

然而,它不适用于:www.example.com/ex/page2.php 或 www.example.com/ex/word/page3.php

努力从我所在的任何目录访问 common.php 的位置,但是,它还需要是授权访问,因此简单的 $_SERVER 包含不起作用。

当我尝试将整个内容包含在内时,它仍然无法正常工作。主要目标是将所有这些代码包含在一个核心包含中,以显示在每个页面的菜单中。

登录在一个页面上工作。我需要登录和登录后代码都可以在网站的每个页面(40 多页网站)上使用。我使用了 2 个级别的包含来构建网站。

4

2 回答 2

0

因为它适用于 www.example.com/page.php 而不是更深的目录,所以看起来您的论坛目录在/forum而不是在./forum 如此变化

$phpbb_root_path = './forum/';

$phpbb_root_path = '/forum/';

(./ 是当前目录,所以它在 www.example.com/ex/forum/common.php 中寻找 common.php)

于 2013-10-04T16:14:11.777 回答
0

在这种情况下,您不能使用相对路径。如果您创建$phpbb_root_path一个绝对路径,那么从该变量构建路径将可以正常工作。

尝试:

$phpbb_root_path = $_SERVER['DOCUMENT_ROOT'] . '/folder/to/forum/';
于 2013-10-04T16:15:28.010 回答