Форум программистов, компьютерный форум, киберфорум
Наши страницы

PHP

Войти
Регистрация
Восстановить пароль
 
oke11o
155 / 25 / 2
Регистрация: 06.06.2009
Сообщений: 262
#1

Вопрос по реализации вывода ошибок - PHP

16.12.2011, 18:18. Просмотров 794. Ответов 9
Метки нет (Все метки)

Здравствуйте. Подскажите как реализовывать обработку ошибок. Например, неправильный аргумент для функции, или ошибка подключения к базе данных.
Я сейчас использую класс Registry и все ошибки отправляю в свойство этого класса Regictry::$errors. А потом проверяю этот массив empty.
Задумался реализовать почти такой же механизм при помощи перехвата исключений.
Подскажите как наиболее лучше обрабатывать ошибки в соответствии с MVC?
Можно ссылку на статью или в двух словах как вы это делаете?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2011, 18:18
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вопрос по реализации вывода ошибок (PHP):

Прогресс-бар: схемы реализации? Вопрос вселенской важности! - PHP
Имеется html-страничка, с которой jQuery аяксом делается запрос к скрипту slow.php, slow.php может работать непрерывно от нескольких секунд...

Отключение вывода ошибок - PHP
Здавствуйте.Подскажите как отключить вывод ошибок PHP, перепробывал все варианты, с модификацией .htaccess, php.ini, и т.д? Понятно, что...

вопрос по реализации на C++ - C++
Условие: собственно сам вопрос: каким образом записать информацию о двух сотрудниках в одной функции, что бы после можно было...

.NET 3.x Вопрос по способу реализации - C#
Вопрос по способу реализации на VS C# 2008. Значит задумка такая у меня. из файла формата .csv, который содержит произвольную таблицу...

Вопрос по реализации буфера - C++
Здравствуйте! Я все продолжаю свои мытарства в текстовым редактором и добрался вот до самого вкусного - как реализовать буфер и работу с...

Гиперссылки в ComboBox: вопрос реализации - Visual Basic
привет всем) мне нужно из вылазиющих строчек в ComboBox сделать Гиперссылки на другую форму. (чтобы при нажатии на одно из слов в списке...

9
YoungBoy
53 / 53 / 5
Регистрация: 19.04.2011
Сообщений: 294
19.12.2011, 09:57 #2
oke11o, а чем не подходит try catch?
PHP
1
2
3
4
5
6
try {
    somefunc();
} 
catch (Exception $e) {
    echo 'Выброшено исключение: ',  $e->getMessage(), "\n";
}
0
oke11o
155 / 25 / 2
Регистрация: 06.06.2009
Сообщений: 262
19.12.2011, 11:47  [ТС] #3
Ну я об этом и говорю. Только при перехвате исключений сообщения в массив заносить.
PHP
1
2
3
4
5
6
try {
    $auth->somefunc();
} 
catch (Exception $e) {
    $errors['auth'][] = $e->getMessage();
}
И потом опять же проверять этот массив и выводить сообщения в нужном месте.
А вопрос как еще можно выводить сообщения об ошибке. Например, "неверный ввод пароля\ логина".
0
YoungBoy
53 / 53 / 5
Регистрация: 19.04.2011
Сообщений: 294
19.12.2011, 11:59 #4
В catch ты можешь поместить что угодно + ко всему есть еще finally для обязательных нужд

Можно через if else
PHP
1
2
3
4
5
6
7
8
9
$login = 'login';
$pass = 'pass';
 
if (($_POST['login'] != $login) && ($_POST['pass'] != $pass)){
    echo "неверный ввод пароля\ логина";
}
else {
    echo "вход выполнен";
}
0
oke11o
155 / 25 / 2
Регистрация: 06.06.2009
Сообщений: 262
19.12.2011, 12:25  [ТС] #5
Уважаемый, Павел. Мы с вами как немой с глухим разговариваем. Друг друга не понимаем. Как работает конструкция try ... catch, я представляю.
У меня к вам вопрос. куда вы сделаете этот echo?
PHP
1
2
3
4
5
if (($_POST['login'] != $login) && ($_POST['pass'] != $pass)){
    echo "неверный ввод пароля\ логина";
}
else {
    echo "вход выполнен";
На всю страницу? Только в блок контента? Или в спец блок ошибок? Как вы выберете этот блок? Если это форма с 10 полями, напротив какого поля выводить сообщение о том, что поле заполнено неверно?
0
YoungBoy
53 / 53 / 5
Регистрация: 19.04.2011
Сообщений: 294
19.12.2011, 12:33 #6
oke11o, у Вас есть форма, которую нужно заполнять и если в какое-то поле введено неверное значение то нужно возле него вывести сообщение?
0
oke11o
155 / 25 / 2
Регистрация: 06.06.2009
Сообщений: 262
19.12.2011, 12:42  [ТС] #7
И это тоже. В одном из шаблонов. В шаблоны данные поступают из контроллера. В контреллере есть свойство $errors.
0
KoIIIeY
163 / 163 / 4
Регистрация: 08.01.2011
Сообщений: 850
19.12.2011, 15:39 #8
Ошибка логина/пароля по моему не должна быть ошибкой системы и проверять ее не стоит как try/catch.
Если база вернула данные юзера - авторизуй, если нет - выведи маленькую ошибку пол полем ввода пароля.
Случай единичный, не думаю, что стоит его включать во всю систему логирования ошибок.

Добавлено через 2 часа 40 минут
у меня в логи попадают только исключения работы программы.

Например если внезапно заместо цифрового идентификатора пришла строка.

Или если массив не массив
1
oke11o
155 / 25 / 2
Регистрация: 06.06.2009
Сообщений: 262
19.12.2011, 15:44  [ТС] #9
KoIIIeY, а как вы выводите сообщения типа ошибка логина/пароля?
0
KoIIIeY
163 / 163 / 4
Регистрация: 08.01.2011
Сообщений: 850
19.12.2011, 16:08 #10
У меня ассоциативный массив ошибок. Если имеется ошибка 'loginError' и/или 'passwordError' выводим к этим полям текст.

У меня вообще зенд и MVC, да и Zend_Form тут валидаторами помогает.
1
19.12.2011, 16:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2011, 16:08
Привет! Вот еще темы с ответами:

Текстурирование 2D полигона: вопрос реализации - XNA
Всем доброго времени суток, я довольно много работал с 2D графикой, но в основном со спрайтами. Я написал класс полигона, всякие там...

Вопрос по реализации клиента EJB - Java EE
Допустим, написан клиент. А как ему будут доступны клиентские stub'ы для работы с EJB? При развёртывании EAR'а можно создать jar со всеми...

вопрос по реализации ассоциативного контейнера - C++
здравствуйте. есть задание по курсовой: Реализовать класс ассоциативного контейнера, хранящий пары элементов «ключ-значение». Ключи...

.NET 4.x Пористая заготовка: вопрос реализации - C#
Народ, помогииииииииииииите! Нужно очень-очень срочно сделать программку. Я не знаю с какого бока к ней подступиться.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru