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 インクルードは機能していません。

全体を独自のインクルードにしようとしても、まだ機能しません。主な目標は、このすべてのコードをコア インクルードの 1 つにまとめて、すべてのページのメニューに表示することでした。

ログインは1ページで動作します。サイトのすべてのページ (40 ページ以上のサイト) で使用できるようにするには、ログインとログイン後のコードの両方が必要です。サイトを構成するために、2 つのレベルのインクルードを使用しました。

4

2 に答える 2

0

この場合、相対パスは使用できません。$phpbb_root_path絶対パスを作成すると、その変数からのパスの構築は正常に機能します。

試す:

$phpbb_root_path = $_SERVER['DOCUMENT_ROOT'] . '/folder/to/forum/';
于 2013-10-04T16:15:28.010 に答える
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 に答える