Реализация вывода ошибок
1.
Apeccc (23.01.2013 / 18:41)
Доброго времени.
Подскажите по реализации (код не нужен).
Есть регистрация.
Есть проверка условий(в этом же файле).
if($login == '' or $login == NULL or strlen($login) > 20 or eregi("|^[a-z\d\[\]_\-а-яе]{2,20}$|ui", $login)){
header ("Location: reg.php");
exit;
}
if($password == '' or $password == NULL or strlen($password) > 20){
header ("Location: reg.php"); exit;
}
Задача:
В случае ошибки в имени - вывести знак "!" у формы ввода имени, в случае с паролем - у пароля.
<form action="?go=reg" method="post">
<div class="main">
Логин (2-20 символов, а-Я, a-Z и символы [ ] _):
<br>
<input name="login"><br>
Пароль:
<br>
<input type="password" name="password">
2.
ubnt (23.01.2013 / 18:45)
<form action="?go=reg" method="post">
<div class="main">
Логин (2-20 символов, а-Я, a-Z и символы [ ] _):
<br>
/// здесь вставить етот код
if($login == '' or $login == NULL or strlen($login) > 20 or eregi("|^[a-z\d\[\]_\-а-яе]{2,20}$|ui", $login)){
echo "!";
}
<input name="login"><br>
Пароль:
<br>
/// здесь вставить етот код
if($password == '' or $password == NULL or strlen($password) > 20){
echo "!";
}
<input type="password" name="password">
Добавлено через 01:13 сек.
там надо вставить код проверки заполнения поля, ну или правильности данних
Добавлено через 03:14 сек.
извините, нет русской розкладки...
3.
Алексей (23.01.2013 / 18:49)
оффтоп: уже вижу вторую твою тему о не правильной организации кода и все из за того что изначально неверная архитектура приложения
4.
Apeccc (23.01.2013 / 18:49)
Мне код не нужен, теорию, плиз.
Добавлено через 00:51 сек.
3.
megabit,
О какой организации речь, если мне теория нужна?
5.
Изнаур (23.01.2013 / 19:02)
Если проверка и форма в одном файле:
теоретик из меня плохой,так что всё таки кодом,а там подправите под себя:
<?php
if(isset($_POST))
{
if(проверка какого либо поля)
если не прошел $error['password'] = 'что хочешь в качестве ошибки'
else
{
//если все условия пройдены
echo 'вы зарегались бла-бла бла';
include('ноги сайта');
exit;
}
}
echo '<input type="password" name="password">'. (!empty($error['password']) ? $error['password'] : '';
?>
довольно много получается но как лучше не знаю
6.
iNeeXT (23.01.2013 / 19:18)
Если ошибка при вводе какого-либо поля, то забиваешь true в массив с флагами ошибок.
Например:
<?
$errors = array();
if(проверка) {
if(проверка, например, логина) {
// ошибка
$errors['login_error'] = true;
}
}
?>
А возле формы проверяешь через empty или isset переменную с ключом для нужного поля.
<?
if(!empty($errors['login_error']))
echo '!';
// html code
?>
7.
kilo (24.01.2013 / 18:05)
1.
Ужасный У, почему используеш eregi?? preg_match гараздо быстрее!
8.
shilo (24.01.2013 / 20:20)
ну так пиши в сессию код ошибки, и при выводе формы проверяй
9.
Александр (24.01.2013 / 22:09)
Код дырявый благодаря eregi.
10.
kilo (24.01.2013 / 22:26)
9.
Муз-ТВ, вот вот
11.
Артур (24.01.2013 / 22:31)
Вообще находить ошибки лучше на уровне js тоже (помимо php), это снизит нагрузку на сервер. В твоем случае могу посоветовать то, что сделал сам: на уровне пыха при появлении исключительной ситуации выбрасывать исключение и ловить его в точке общего входа. Оттуда передавать специальную команду в js, а тот в свою очередь информирует пользователя об ошибке сервера указывая требуемое поле
URL:
https://visavi.net/topics/36357