0

PHP の問題は非常に簡単に解決できるように見えますが、解決策を見つけるにはかなりの頭痛の種です。

PHPBB を実行しており、SQL データベースの特定のフィールドにアクセスするための外部ログイン ポートを作成しています。PHPBB とログイン元の場所の両方が Web サイトの 2 つの別々のサブディレクトリに存在するため、コードの問題が発生しています。

ここに私の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 にアクセスしようとする Web サイトで 404 エラーを生成します。スクリプトが機能する形式で Web サイトの完全な URL を使用しようとしましたが、フォーラム セッションが正しく読み込まれなかったため、URL にセッション ID が含まれるログイン ページに戻りました。

4

0 に答える 0