2

これ自体は問題ではありませんが、私を悩ませているので、助けていただければ幸いです。それは完全に明白かもしれませんが、私には見えません。

$root_path = $_SERVER['DOCUMENT_ROOT'] 
require($root_path .'template/header.php')
require($root_path .'template/footer.php')

スクリプトにはいずれか一方が含まれますが、両方は含まれません。それは実行され、ヘッダーは含まれますがフッターは含まれません。それらを交換すると、最初にフッターが読み込まれますが、ヘッダーは読み込まれません。

include代わりに使用してみましrequireたが、同じ結果が得られます。

エラーが発生しますallow_url_include = 0。これを回すと解決することはわかっていますが、私の質問はなぜそれが起こっているのですか? あるファイルが含まれるのに、他のファイルが含まれないのはなぜですか? 電源を入れずに両方を実行する方法はありますかallow_url_include(私はセキュリティを意識しようとしています)。私は PHP 5.3 を使用しており、WAMP を実行しています。よろしくお願いします。

4

3 に答える 3

0

あなたが書いたものに何も問題はありません。他の人が言っているように、何かが起こっている$root_pathか、スクリプトがそのインクルードに到達する前に終了しています。

var_dump($root_path)フッターインクルードの真上を実行します。それが発火した場合、あなたはそれがインクルードに到達していることを知っています。それでも機能しない場合は、フッター内からエコーを実行して、ファイル内に収まるかどうかを確認します。

于 2010-05-12T15:57:02.693 に答える
0

おそらく$root_path、ファイル header.php または footer.php で変更されていますか?

于 2010-05-12T15:51:45.570 に答える
0

$root_pathインクルードされたファイルで再定義しているようです。

于 2010-05-12T15:47:42.853 に答える