-1
public_html > config.php 

public_html > A > test_file.php

test_file.php コードで

require_once("../config.php");

正常に動作します。Dreamweaver で動的に関連するファイル (config.php) を正常に表示します

public_html > includes > classes > allclasses.php

allclasses.php コードで

require_once("../../config.php");

Dreamweaver で動的に関連するファイル (config.php) を正常に表示します

test_file.php に allclasses.php を含めたとき

require_once("../config.php");
require_once("../includes/classes/allclasses.php");

Dreamweaver で動的に関連するファイル (config.php、allclasses.php) を正常に表示します。

test_file.php が動作を停止し、ブラウザに表示される

Warning: require_once(../../config.php) [function.require-once]: 
failed to open stream: No such file or directory in .....\public_html\includes\classes\allclasses.php on line 11

xampp を開発サーバーとして使用します。

4

3 に答える 3

2

インクルード内にインクルードを行う場合は、絶対パスを使用することをお勧めします。したがって、たとえば test_file.php で次のように、 __DIR__or定数を使用してそれを行うことができます。__FILE__

require_once(realpath(dirname(__FILE__) . '/../config.php'));

あるいは単に

require_once(realpath(__DIR__ . '/../config.php'));
于 2013-10-31T11:00:44.827 に答える
0

相対 URL パスの代わりに絶対 URL パスを使用します。

これを試して:

require_once($_SERVER["DOCUMENT_ROOT"]."/config.php");
于 2013-10-31T11:00:59.397 に答える
0

のようなものを呼び出さない限りchdir()、すべての require/include 呼び出しは、呼び出された PHP ファイル (ここではtest_file.php ) のディレクトリに対して相対的です。そのため、require_once("../../config.php")from allclasses.phpがエラーをスローします。

あなたの状況では、他に影響がない場合、最も簡単な修正はallclasses.phprequire_once("../../config.php")から削除することです。

フロントコントローラーを使用して、呼び出されたPHPスクリプトが常に同じファイルであることを確認し(およびinclude/requireは常に同じディレクトリに対して作成されます)、config.phpファイルのすべてのインクルードに対して1回だけ実行することをお勧めします.

于 2013-10-31T11:02:00.707 に答える