2011-07-11 7 views
0

私のアプリでは、AJAX呼び出しを使用して情報を取得しています。これにはdb_connect.phpファイルが必要です。 db_connect.phpには他のファイルが必要です。ベースディレクトリ変更の問題

AJAXファイルからdb_connect.phpをインクルードすると、当然、db_connect.phpのインクルードファイルがアプリケーションのベースディレクトリからの相対パスであるため、db_connect.phpファイル内のインクルードからエラーが返されます。

作業ディレクトリをアプリケーションのベースディレクトリに変更して、インクルードファイルが正しく機能するようにするにはどうすればよいですか?

私が試したことはchdir機能を使用している:

echo getcwd() . "<br/>"; 
chdir("../../"); 
echo getcwd(); 

これは正しく出力:

/my/webserver/app/lib/ajax 
/my/webserver/app 

私は、ディレクトリを変更していないようにしかし、含まエラーが行動:

警告:include_once(functions/clean_string.func.php)[function.include-once]:ストリームを開くことに失敗しました:いいえそのようなファイルやディレクトリは、/ webserver/app/lib/ajax/ajax.phpの8行目にあります。

私は間違っていますか?

+0

「AJAXファイル」ですか? –

+0

ディレクトリ構造、要求しているパス、またはincludeステートメントを表示していませんでした。 –

答えて

1

絶対パスを使用してください。

たとえば、アプリケーションのベースにある設定ファイルでは、絶対パスの基本パスを定義します。

define("BASE_PATH", dirname(__FILE__)); //This now is a ABSOLUTE path to a dir that this file is in. 

は、次に使用:

include BASE_PATH . "/dir/dir/file.php"; 

次に、あなただけの、あなたがアプリでどこから比較的上部にあるすべてのスクリプトのconfigファイルをインクルードする必要があり、他のすべてのが含まれにそしてちょうどBASE_PATHを使用します。

-1

getcwd()あなたのインクルードパスは返されません。代わりに、次のようなものを試してみてください:

chdir("../../"); 
include(getcwd()."/functions/clean_string.func.php"); 
関連する問題