PHP require / include работает только один раз в скрипте, а затем не работает - PullRequest
2 голосов
/ 12 мая 2010

Это не проблема как таковая, но она меня беспокоит, и я был бы признателен за любую помощь. Это может быть совершенно очевидно, но я не вижу этого.

$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. Заранее спасибо за помощь!

Ответы [ 3 ]

0 голосов
/ 12 мая 2010

Может быть $root_path изменено в файле header.php или footer.php?

0 голосов
/ 12 мая 2010

Нет ничего плохого в том, что вы написали. Как уже говорили другие, что-то происходит с $root_path или сценарий завершается, прежде чем он попадет в этот список.

Сделайте var_dump($root_path) прямо над нижним колонтитулом. Если это срабатывает, вы знаете, что это входит в список. Если это все еще не работает, сделайте несколько эхо-сигналов из нижнего колонтитула, чтобы увидеть, попадает ли он в файл.

0 голосов
/ 12 мая 2010

Похоже, вы переопределяете $root_path во включенном файле.

...