<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 つのレベルのインクルードを使用しました。