Реализация вывода ошибок

Печать RSS
249

Автор
KinG`уренок
0
Доброго времени.
Подскажите по реализации (код не нужен).
Есть регистрация.
Есть проверка условий(в этом же файле).
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">
U

Пришелец
0
<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 сек.
извините, нет русской розкладки...
А

Чатланин
0
оффтоп: уже вижу вторую твою тему о не правильной организации кода и все из за того что изначально неверная архитектура приложения
Автор
KinG`уренок
0
Мне код не нужен, теорию, плиз.

Добавлено через 00:51 сек.
3. megabit, smile О какой организации речь, если мне теория нужна?
И

Пацак
0
Если проверка и форма в одном файле:
теоретик из меня плохой,так что всё таки кодом,а там подправите под себя:
<?php
if(isset($_POST))
{
if(проверка какого либо поля)
если не прошел $error['password'] = 'что хочешь в качестве ошибки'
else
{
//если все условия пройдены
echo 'вы зарегались бла-бла бла';
include('ноги сайта');
exit;
}
}
echo '<input type="password" name="password">'. (!empty($error['password']) ? $error['password'] : '';
?>
довольно много получается но как лучше не знаю
Изменил: Изнаур (23.01.2013 / 19:08)
I

Пришелец
0
Если ошибка при вводе какого-либо поля, то забиваешь true в массив с флагами ошибок.
Например:
<?
$errors = array();
if(проверка) {
   if(проверка, например, логина) {
     // ошибка
     $errors['login_error'] = true;
   }
}
?>

А возле формы проверяешь через empty или isset переменную с ключом для нужного поля.
<?
  if(!empty($errors['login_error']))
    echo '!';
  // html code
?>
Изменил: iNeeXT (23.01.2013 / 19:20)

Землянин
0
1. Ужасный У, почему используеш eregi?? preg_match гараздо быстрее!

Чатланин
0
ну так пиши в сессию код ошибки, и при выводе формы проверяй
А

Оранжевые штаны
0
Код дырявый благодаря eregi.

Землянин
0
9. Муз-ТВ, вот вотsmile
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск