|
|
|
| Нужен совет по поводу того, как лучше реализовать обработчик ошибок, не глобальных, а например если пользователь ввёл не валидные данные в форму или БД недоступна. Я выделил отдельный файл с функцией, где в массиве описаны ошибки, а потом просто обращаюсь к ней с кодом соответствющей ошибки, но есть одно но:
К примеру ошибка должна выводиться в середине html-странички, как это реализовать красиво - я не представляю, пришлось разделить страницу на несколько частей и выводить ошибку примерно так:
if (empty("$_POST['Name']")){
show_head();
show_error(3);
show_bottom();
}
|
Мне кажется извращение. Подскажите как реализовать сие красивее. | |
|
|
|
|
|
|
|
для: Keyses
(01.03.2009 в 02:13)
| | А зачем разбрасывать сообщениия по всей странице? Ну не доступна БД, и если это "фатально" для текущей страницы - пустая страница с сообщением. Хотите ее отцентрировать, так для этого CSS существует. Ну а при заполнении полей формы, например, ошибок может быть много, и выводить их нужно непосредственно рядом с формой, и если "скопом", то, видимо, лучше вверху. Либо непосредственно рядом с полями формы, ошибки ввода в которых произошли.
Кстати, ошибок на каждое поле формы может быть не одна, а несколько, так что код show_error(3), ну никак не покатит. Либо я не правильно понимаю вашего понятия "код ошибки". | |
|
|
|
|
|
|
|
для: sim5
(01.03.2009 в 05:14)
| | Я проверяю все поля на валидность и потом просто выводится сообщение о том, что не заполнено или заполнено неверно одно из обязательных полей, вот и всё. А суть всё же в другом, как расположить сообщение об ошибке над формой, при условии, что выше есть ещё какой-то текст или формы..? | |
|
|
|
|
|
|
|
для: Keyses
(01.03.2009 в 16:31)
| | Это уже проблема не РНР, а чисто HTML+CSS. Помещайте свои сообщения и форму, например, в таблицу или элементы DIV. | |
|
|
|
|
|
|
|
для: sim5
(01.03.2009 в 16:35)
| | Можно примерный алгоритм? Я должен сделать в функции обработчика ошибок таблицу назначить ей ID и потом в css просто сформировать ей дизайн? | |
|
|
|
|
|
|
|
для: Keyses
(01.03.2009 в 17:14)
| | Ну какой алгоритм? Это чистый HTML шаблон страницы, и если есть затруднения по его составлению, то вам в соответсвующий раздел с такими вопросами. А вот когда вы составите этот шаблон, тогда в нужном месте и выводите свои ошибки, вставляя РНР код. | |
|
|
|
|
|
|
|
для: Keyses
(01.03.2009 в 17:14)
| | я когда то использовал такой скрипт для вывода сообщений,если какое то из полей формы запонено не правильно или вообще не заполнено
<?php
$error = "";
$action = $_POST['action'] ;
if (!empty($action))
{
/*проверка логина*/
if (!empty($login)) {
if (!preg_match("|^[a-zа-яA-ZА-Я]+$|i",$login))
{ $action = "";
$error = $erorr."<p class='p_info_f'>неверный формат логина</p>";
}
}
/*проверка длины логина*/
if (!empty($login)) {
if (strlen($login) < 4 or strlen($login) > 11)
{ $action = "";
$error = $error."<p class='p_info_f'>Ваш логин менее 4-х или более 8-ми символов</p>";
}
}
else
{ $action = "";
$error = $error."<p class='p_info_f'>не введён логин</p>";
}
if (empty($action))
{
if (!empty($error))
/* если есть ошибки, выводим сообщение об ошибках */
{
echo "<p class='p_info_f'>Во время добавления записи произошли
следующие ошибки:</p>\n";
echo $error;
}
?>
<!--....тут сама форма......-->
<?php
//...тут обрабатываешь данные введённые в форму....
?>
|
ну а для тега "р" прописываешь в файле CSS стили
.p_info_f {
text-align:center;
color:red;
font-size:12px;
}
|
это часть кода, остальное допиши так как тебе надо, по аналогии.
всё это не претендует на идеальносьть и т.д., привёл тебе как пример и простое решение...
на первое время хватит.
проверку введённых данных, форму и обработчик ошибок распологаешь в одном файле.
надеюсь тебе поможет это :) | |
|
|
|
|
|
|
|
для: Slo_Nik
(02.03.2009 в 16:07)
| | Нашёл довольно экзотическое решение с использованием глобальных переменных и обработчика ошибок. Так что всем спасибо :) | |
|
|
|