Попытка использовать PHP включить на страницу ошибки, но не работает в разных каталогах

StackOverflow https://stackoverflow.com/questions/19850016

Вопрос

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

directory1/directory2/thispagecausesa404error.php

directory1/thispagecausesa404error.php

Если у меня есть include includepage.php; На моей странице ошибки, тогда это не сработает.

Я решил добавить include_once $_SERVER['DOCUMENT_ROOT'].'/includepage.php'; На странице Errordocument, которая решает проблему, но я подозреваю, что я делаю что -то не так или не вижу надлежащего способа включить безупречный включение на странице ошибки.

Что я делаю не так?

Это было полезно?

Решение

Я бы порекомендовал никогда не полагаться на DOCUMENT_ROOT правильно установить. Вместо этого используйте относительный путь от текущего сценария через __DIR__ магическая постоянная, например

include __DIR__ . '/relative/path/from/this/script/to/includepage.php';

Путь также может содержать пересечение родительского каталога через ../ При необходимости, например

include __DIR__ . '/../../some/dir/includepage.php';
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top