Ваша реализация вывода ошибок по тому или иному по

Print RSS
116

H
Author
Чатланин
0
Pебят, всем привет. Сложилась такая ситуация, что я всё не могу никак подойти к тому, как же лучше всё-таки делать ошибочки при тех или иных ситуациях. Вот остановлся на таком варианте:
$err = array(); //Брум-бум-бум-бум масив
 
$posts = mysql_result(mysql_query("SELECT COUNT(id) FROM news"), 0);
$_GET['edit'] < $posts || $_GET['edit'] > $posts ? $err[] = 'Новости с таким ID не существует.' : NULL; //Проверяем, есть ли такая новость.
 
f(!empty($_POST['title']) && !empty($_POST['text']))
{
     mb_strlen($_POST['title']) < 3 || mb_strlen($_POST['title']) > 50 ? $err[] = 'Заголовок должен быть не меньше 3 символов и не больше 50 символов.' : NULL; //Проверяем на кол-во знаков.
     mb_strlen($_POST['text']) < 50 || mb_strlen($_POST['text']) > 2000 ? $err[] = 'Текст новости должен быть не меньше 50 символов и не больше 2000 символов.' : NULL; //Проверяем на кол-во знаков.
}
 
//Если ошибок нет.
if(count($err) == 0)
{
     $output .= '<div class="sys_bg"><div class="system succes">Новость успешно изменена!</div></div>';
}
else
{
     //Если есть - выводим.
     foreach($err AS $error)
     {
          $output .= '<div class="sys_bg"><div class="system error">'.$error.'</div></div>';
     }
}

Но в этом варианте есть недостаток, что если например много отправляешь по форме, и потом их надо занести в базу, то если где-то вот проходит ошибка, то можно сказать весь скрипт ступориться. А если ты начинаешь мудрить с проверкой для каждого раза, типа count($err) == 0 то продолжаем, то получается, если честно, бред.

Подскажите, как лучше это всё реализовать или как вы это реализовываете. На процедурке.

крутой чЕл
0
$error = '';
if(ошибка) $error.="ошибка!!1";

потом if(!empty($error)) echo $error;

если я прально понял
H
Author
Чатланин
0
ну а если ошибок будет много? А если в форме много полей, и некоторые он заполнит правильно, а некоторые нет?
K

Транклюкаторщик
0
3. Hennessy, по каждому полю отдельная ветка if
if(заполнено неправильно){$error .= 'Неверно заполнено поле "поле"!<br />';} else ...

Добавлено через 00:20 сек.
вообще - недопонимаю честно говоря о чем ты
H
Author
Чатланин
0
4, не прокатит. Мой код выше почитай чётче. Поймёшь)

крутой чЕл
0
if(поле введено с ошибкой) $error.="текст ошибки";

и так с каждым. Потом if(!empty($error)){

echo $error;

exit;

}

По моему подходит тебе
H
Author
Чатланин
0
Если ты почитаешь код выше...то там то же самое сделаноD Но суть не в этом...Смотри, вот у меня есть страница. В ней есть форма с полями: имя, фамилия, возраст.
Дальше я вот беру обрабатываю всё, заношу как бы эти ошибки в массив $error, если они будут. Ну вдруг он введет имя меньшего размера или в Фамилию не укажет. Так вот. В моём коде получается, что если вдруг будет ошибка хоть где-то, и count($error) покажет значение не равное 0 (т.е. будут ошибки), то скрипт остальные данные не хочет обрабатывать. Т.е. сразу тормозит и показывает, вот мол, вы в имени ошиблись. Хотя возможно, что фамилия и возраст то были указаны верно, и их можно было и сохранить, и написать, мол:
!Ваше имя короче 3 символов.
Фамилия успешно сохранена.
Возвраст успешно сохранён.

Ну вот так, как-то....думаю сейчас понятно объяснил?

2000 лет д.н.э.
0
Ну так записывай в сессию верные значения, и вставляй их в поля.
И вообще, из твоего первого поста совершенно не понятно, чего ты хочешь
H
Author
Чатланин
0
На PHP.SU ребята всё прекрасно поняли, правда до меня быстрее дошло решение. Всем спасибо. Закрыто.
Stickers / Tags / Rules / Top topics / Top Posts / Search