我有一个似乎很容易解决的PHP问题,但是却让我很难找到解决方案。
我正在运行PHPBB并正在创建一个外部登录端口来访问SQL数据库中的某些字段。代码中的问题即将到来,因为PHPBB和我登录的位置都存在于网站上的两个单独的子目录中。
这是我的PHP代码:
define("IN_PHPBB", true);
define("PHPBB_ROOT_PATH", "../forums/");
$phpbb_root_path = "../forums/";
$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);
if ($user->data["is_registered"]) {
echo "<form method=\"post\" action=\"".$phpbb_root_path."ucp.php?mode=logout&sid=".$user->data["session_id"]."\">";
echo "<input type=\"submit\" name=\"logout\" value=\"Logout\">";
echo "<input type=\"hidden\" name=\"redirect\" value=\"../index.php\">";
echo "<br /></form>";
}
if (!$user->data["is_registered"]) {
echo "Welcome! Please log-in to your forums account to proceed:<p>";
echo "<form method=\"post\" action=\"".$phpbb_root_path."ucp.php?mode=login\">";
echo " Username:";
echo "<br />";
echo " <input type=\"text\" name=\"username\" size=\"15\" value=\"\">";
echo "<br /><br />";
echo " Password:";
echo "<br />";
echo " <input type=\"password\" name=\"password\" size=\"15\" value=\"\">";
echo "<br /><br />";
echo "<input type=\"submit\" name=\"login\" value=\"Login\">";
echo "<input type=\"hidden\" name=\"redirect\" value=\"../".$_SERVER["PHP_SELF"]."\">";
echo "<br /></form>";
}
此代码在网站上生成404错误,试图访问此php文件所在子目录中的ucp.php,而不是论坛上的那个。我尝试在允许脚本运行的表单中使用网站的完整URL,但论坛会话没有正确加载,因此只是将我带回到登录页面,并在网址中显示会话ID。