Отладка скриптов в php, учимся на ошибках
Главная  
Про проект  
Книги  
Обмен ссылками  
Сервис  
Добавить статью  
Главная
Про проект
Книги
Обмен ссылками
Сервис
Добавить статью
Главная
dragon
Статьи в разделе:
Примеры PHP/Javascript
всего статей (9)

» Bcompiler расширение php
» Отладка скриптов в php
» Авторизация на sape.ru
» Cокеты в php
» Защита js кода
» Отправка почты на PHP
» Создание часов
» Защита от спама
» Резолюция дисплея на Javascript

Другие разделы:
    Подготовка к созданию сайта
    Установка програм
    Пример создания сайта
    Хостинг и домен
    Оптимизация сайта
    Раскрутка сайта
    Заработок Web-мастера

 
 
 
sape
Детские домики оптом. Детские деревянные домики. Картинки детские домики.
 
Кнопка сайта:
Самостоятельное создание сайта, веб-дизайн, web-программирование, продвижение и оптимизация сайта




По всем вопросам пишите на webmaster@info-pages.com.ua. Вы можете свободно использовать/размещать/перепечатывать статьи сайта всего лишь указав ссылку на источник.
Отладка скриптов в php, учимся на ошибках
  

   Ошибки в php и их отладка

Размещено: 18 сентября 2009   

   Даже при разработке маленького сайта нужно отлаживать свой код и исправлять ошибки и баги. Без средств отладки обойтись у Вас никак не получится, разве что Вы ясновидящий и можете предсказать, где была допущена ошибка)))) Чтобы полноценно начать писать свой код, необходимо позаботится о выводах ошибок. Если Вы только начинащий программист, то обязательно должны сначала, хотя бы, ознакомится с системой отладки скриптов.

   В php все ошибки деляться на такие основные категории:

Название Описание Число Появление
E_ALL все виды ошибок и предупреждения (кроме, E_STRICT) 2047  
E_ERROR критические ошибки, которые приводят к остановке выполнения скрипта 1  
E_WARNING предупреждения (не являються критическими ошибками, означает что скрипт продолжает свою работу) 2  
E_PARSE ошибки компиляции при проверке кода скрипта перед его выполнением 4  
E_NOTICE уведомления во время выполнения скрипта (например, найден баг похожий на ошибку, но возможно он был допущен преднамерено и является рабочим кодом в следствие инициализации скрипта) 8  
E_STRICT уведомления во время выполнения скрипта по изменению кода для улучшения его интерпретации, например предупреждать Вас об использовании нежелательных (устаревших) функций 2048 PHP 5
E_CORE_ERROR критические ошибки связаные непосредственно в самом PHP (например, отсутствуют файлы библиотеки) 16 PHP 4
E_CORE_WARNING предупреждения связаные непосредственно с самим PHP, не критические ошибки (означает что скрипт продолжает свою работу) 32 PHP 4
E_COMPILE_ERROR критические ошибки во время компиляции 64 PHP 4
E_COMPILE_WARNING предупреждения во время компиляции, не критические ошибки (означает что скрипт продолжает свою работу) 128 PHP 4
E_USER_ERROR пользовательские критические ошибки 256 PHP 4
E_USER_WARNING пользовательские предупреждения 512 PHP 4
E_USER_NOTICE пользовательские уведомления 1024 PHP 4

   В php существует очень детальная и мощная система отладки, которую можно настроить как непосредственно в самом скрипте так и в настройках непосредсвенно самомого PHP.

   Чтобы настроить отладку вывод ошибок в настройках php, Вам необходимо открыть файл php.ini (находится в корне каталога с установленым php) и найти в нем блок Error handling and logging. Чтобы включить показ ошибок на дисплее Вам необходимо раскомментировать следующие строки:

   error_reporting = E_ALL & ~E_NOTICE | E_STRICT

, где E_ALL - выводим все ошибки,& - и, ~E_NOTICE | E_STRICT - пропускаем уведомления E_NOTICE или E_STRICT.

   Для отладки php скриптов непосредственно в скриптах существуют специальные функции, которые отображают все выявленые ошибки:

Название Описание
error_reporting() функция устанавливает какие виды ошибок следует далее выводить и возвращает предыдущий вид ошибок, например:

<?php
error_reporting(0); //отключает все сообщения об ошибках
error_reporting(E_COMPILE_ERROR | E_WARNING | E_STRICT);
error_reporting(8);
?>

trigger_error(),
аналогичная функция: user_error()
генерирует сообщения пользователя под видом ошибок E_USER_ERROR, E_USER_WARNING и E_USER_NOTICE, например:

<?php
if (empty($a)) trigger_error ("Критическая ошибка. Нет данных.", E_USER_ERROR);
?>


   Теперь Вы можете настроить в своих скриптах нужный вывод ошибок или наоборот отключить (если это удаленный сервер и Вы не хотите чтобы пользователи видели все предупреждения и уведомления).

   В php текст ошибок, как правило детально описывает выявленую ошибку и указывает номер строки с ошибкой, например:

<?php
echo 0
?>

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in C:\apache\localhost\www\info-pages\www\index.php on line 1

   Данная ошибка синтаксическая, строка 1 не закрыта точкой с запятой.

   Помимо вывода ошибок при написании кода очень часто приходится проверять передается и соответсвенно получается ли нужная информация в переменные php. Для этогоразработчиками используется функция var_dump(). В отличие от функции echo или print, функция var_dump позволяет выводить на экран, также, массивы. Например:

<?php

$a = array (4, 2, "a"=>45, "b"=>array(1,2));
$b = "переменная b";
$c = 3;

echo "<pre>";
var_dump ($a);echo "<br>";
var_dump ($b);echo "<br>";
var_dump ($c);echo "<br>";
echo "</pre>";

?>

   Выведет на экран:

array(4) {
[0]=>
int(4)
[1]=>
int(2)
["a"]=>
int(45)
["b"]=>
array(2) {
[0]=>
int(1)
[1]=>
int(2)
}
}

string(12) "переменная b"

int(3)  

   Надеюсь, что выше перечисленные инструменты упростят Вам разработку скриптов на php и сделают Ваш код более надежным.
Ваша оценка:
 kod
Проголосовать!
Спасибо, Вы успешно
проголосовали!
Ошибка скрипта,
сообщите администратору!
Ошибка,
неверный код!
Вы уже голосовали!
Текущий рейтинг: +5, проголосовало 2
Комментариев к статье (0)
Д О Б А В И Т Ь    К О М М Е Н Т А Р И Й:
   Ваше имя:
   
   Почтовый ящик @:
    * - не отображается
   Текст комментария:
   



   Введите защитный код: :) :( ;) :| 8) :] :0 :S :Ok :sos :B B( yes boom write
   kod
   
 

Где еще почитать на эту тему?
 

                                                                                                                                                                                                                                                                                                                                                                                 
Авторизация

Логин:
Пароль:



















 
Все права защищены, 2007-2009рр. статей: всего 71, на модерации 245; комментариев: 334, ссылок: всего 15, новых 0; выполнено за 0.05 sec. Карта сайта