2012-01-17 2 views
1

У меня есть фрагмент кода следующим образомPHP код нарушения при вызове функции требуют

echo "calling require"; 
require ('../includes/functions/database.php'); 
echo 'require called'; 

мой код повторяет первую команду и печатает «Calling требуется.»

как только она попадет требует функции моего кода перерывов и не выполняет дальше, в результате чего я не получаю, чтобы напечатать последнее эхо «требует назвать»

Что может быть возможной причина?

+0

, кстати, я подтвердил существование файла в том месте, которое я указал в параметре require. –

+0

Любой 'exit()' в вашем файле database.php? Вы можете показать нам этот файл? –

+0

'Если вы используете директиву require для загрузки файла, ваш скрипт умрет, если файл не будет найден, или пользователь, на котором работает веб-сервер, не имеет доступа к нему ». --php.net Проверьте свои разрешения –

ответ

-1

Файл может существовать, но может быть нечитаемым. Используйте is_readable(), чтобы проверить это:

if(is_readable('../includes/functions/database.php')) { 
    echo('ok!'); 
} 

Кроме того, там может быть ошибка или die() внутри database.php файла, который предотвращает дальнейшее выполнение. Проверьте database.php на наличие ошибок и вызовы die/exit.


Добавить error_reporting(E_ALL); ini_set('display_errors', 'On'); в начале вашего scipt к ошибкам отладки, как Салман Предложенное в комментариях.

+0

спасибо kdzwinel, я смог увидеть и исправить ошибку, используя error_reporting (E_ALL); ini_set ('display_errors', 'On'); над линией изгоев. спасибо за ваш вклад. –

0

Требуемый файл:

  • не существует
  • существует, но ваш относительный путь не соответствует его расположение
  • не читается
  • имеет синтаксические ошибки сама

Любой из них может быть причиной.

+0

Btw, опрокидывание ответов других людей не делает вас лучше. – Narf

+0

спасибо narf, я смог увидеть, а затем исправить ошибку, используя error_reporting (E_ALL); ini_set ('display_errors', 'On'); над линией изгоев. спасибо за ваш вклад. Я согласен с вашим приятелем по позициям на downvoting .. :) –

4

Сообщите, пожалуйста, об ошибках, и вы обнаружите ошибку довольно быстро.

Добавьте эти строки перед требуют

ini_set('display_errors', true); 
error_reporting(E_ALL); 
+0

спасибо remy, я смог увидеть, а затем исправить ошибку, используя error_reporting (E_ALL); ini_set ('display_errors', 'On'); над линией изгоев. спасибо за ваш вклад. –

-1

Если вы просто хотите, чтобы ваш код будет выполняться независимо от того, если require сделал работу, вы можете использовать include вместо require как он генерирует предупреждение вместо фатальной ошибка.

+0

спасибо fero, я смог увидеть, а затем исправить ошибку, используя error_reporting (E_ALL); ini_set ('display_errors', 'On'); над линией изгоев. спасибо за ваш вклад. –

0

Требование файла на PHP с использованием относительного пути должно быть запрещено. Относительный путь зависит от того, что PHP-файл сначала вызывается браузером. Всегда необходимо или включать файлы, используя абсолютный путь.

+0

спасибо jerome, я смог увидеть, а затем исправить ошибку, используя error_reporting (E_ALL); ini_set ('display_errors', 'On'); над линией изгоев. спасибо за ваш вклад. –

Смежные вопросы