Как найти ошибку в своем коде

Материал из Справочный центр HOST96.ru
Перейти к: навигация, поиск

Быстрые рекомендации.

1. Убедитесь, что вы видите сообщения об ошибках, если они возникают. Для этого надо добавить в начало скрипта 2 строчки

ini_set('display_errors',1);
error_reporting(E_ALL);

Хотя в некоторых случаях это всё равно не поможет. Тогда смотрите ошибки в логах веб-сервера. Ещё можно добавить в файл .htaccess строчку

php_flag display_errors 1

Обязательно убрать всех собак (@) из кода! Если апач выдаёт ошибку 500 - значит надо смотреть текст ошибки в логе ошибок веб-сервера.

2. Если возникают проблемы с функциями MySQL (например "supplied argument is not a valid MySQL result resource") - это значит, что mysql_query() выполнилась с ошибкой. Чтобы всегда быть в курсе таких ошибок, функцию mysql_query надо вызывать так:

$sql = "SELECT * FROM table";
$res = mysql_query($sql) or trigger_error(mysql_error()." in ".$sql);

Если используется mysqli, то перед коннектом написать 1 строчку:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

Если используется PDO, то соединяться, как написано здесь: http://phpfaq.ru/pdo#connect

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

4. При проблемах в аплоаде в первую очередь смотреть массив

$_FILES (print_r($_FILES);) 

Описания ошибок из $_FILES['filename']['error'] есть в мануале.

5. При проблемах во взаимодействии сервера и клиента (куки, сессии, запросы)- в обязательном порядке смотреть обмен HTTP заголовками

6. Закомментируйте строчку с header("Location:"), если ищете ошибку в обработчике POST запроса

7. При отладке AJAX запросов смотрите ответ сервера в FireBug-e и его аналогах (кнопка F12 в любом браузере), вкладка Network - Preview.

8. И САМОЕ ВАЖНОЕ: запуская скрипт, смотрите не то, что показывает браузер, а ИСХОДНЫЙ HTML код!.

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

Если вы всё равно не нашли ошибку - [1]