2

うまくいく方法を探しましたが、すべてのパスでうまくいくようには見えなかったので、これを行う方法について教えてもらえないかと思っていました:

これは構造です:

Home Directoy
   config.php
   index.php
   includes/
      user_login.php
      applicant_track.php
   ucp/
      index.php

includes/user_login.php を ucp/index.php に含めようとすると、ファイルが見つからないと表示され、コードは ucp/index.php にあります。

if(!defined('root_path'))
{
    define('root_path', realpath(dirname(__FILE__)));
}

include(root_path . '\config.php');

switch($_GET["a"])
{
    case null: include(root_path . '\index.php'); break;
    case "login": include(root_path . '\includes\user_login.php'); break;
}

これは私が得るものです:

Warning: include(E:\xampp\htdocs\aod_panel\ucp\config.php): failed to open stream:

これを修正する方法についてアドバイスをいただければ幸いです。

4

3 に答える 3

1

ルート パスは、プロジェクトの実際のルートを指していません。実際のルートは someLocation/yourProject です。

定義したルートは someLocation/yourProject/includes/ です

次に、ファイルを別のフォルダーに含めます。したがって、それを見つけることができません。インクルードディレクトリ内ではなく、実際のプロジェクトルートへのパスのルートを定義します。

これを行うには、構成ファイルでルート パスを定義し、そこから読み取ることができます。

于 2015-06-08T15:12:13.867 に答える
1

次のパスを使用

define('root_path', realpath(dirname(dirname(__FILE__))));

実際のパスを定義するためのコードの代わりに。あなたのフォルダ構造はそのようなものです。

index.php がucpフォルダーにあることを確認しますが、config.php のパスが必要です。1 つのディレクトリに戻り、config.php パスを取得します。

于 2015-06-08T15:12:39.957 に答える
0

これはおそらく、他のスクリプトの 1 つに適切なパスのない config.php が含まれている可能性があります。次のコードを使用してインクルード パスを設定します

  set_include_path(get_include_path() . PATH_SEPARATOR . $root_path);

また、複数のインクルードを防ぐために、インクルードを require_once に変更します。

于 2015-06-08T15:09:19.587 に答える