0

我遇到了一个似乎很容易解决的 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&amp;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>";
   }

此代码在网站尝试访问此 php 文件所在的子目录上的 ucp.php 时生成 404 错误,而不是论坛上的那个。我尝试以允许脚本运行的形式使用网站的完整 URL,但论坛会话未正确加载,因此只是将我带回到此处的登录页面,并在 url 中使用会话 ID。

4

0 回答 0