Консультация № 160112
10.02.2009, 16:31
0.00 руб.
0 3 1
Здравствуйте, Уважаемые эксперты.
Мой неразрешимый вопрос заключается в следующем:
Имеется несколько полей регистрации, которые имеют определённые требования (минимальная, максимальная длина; поле обязательно для заполнения; проверка правильности e-mail и т.д.) В том числе хочу проверить правильность введённых паролей при регистрации.
Но при нажатии на кнопку ОТПРАВИТЬ (учитывая, что пароли введены правильно) получаю сообщение, что они введены не правильно. Остальное реагирует адекватно. В чём моя ошибка? Подскажите, пожалуйста.


Приложение:
Фрагменты кода:

// если не заполнено поле "Имя" - показываем ошибку 1
if (empty($_POST['user']))
output_err(1);
// если не заполнено поле "Имя" - показываем ошибку 3
if (empty($_POST['pass']))
output_err(3);
// если не заполнено поле "Имя" - показываем ошибку 3
if (empty($_POST['repass']))
output_err(3);
// если не совпадают пароли - показываем ошибку 2
if (empty($_POST[$pass != $repass]))
output_err(2);
// если не заполнено поле "Имя" - показываем ошибку 1
if (empty($_POST['first']))
output_err(1);



function output_err($num)
{
$err[1] = 'Ошибка! Это поле обязательно для заполнения.';
$err[2] = 'Ошибка! Пароли не совпадают.';
$err[3] = 'Ошибка! Пароль не может быть короче 5 символов.';
$err[4] = 'Ошибка! Введите правильный e-mail.';
echo '<p>'.$err[$num].'</p>';
show_form();
exit();
}

if (!empty($_POST['submit'])) complete_mail();
else show_form();
?>

Обсуждение

Неизвестный
10.02.2009, 16:42
общий
это ответ
Здравствуйте, Костенко Алексей!

У Вас ошибки в имени ключа для массива $_POST. Вообще сверку пароля и подтверждения лучше выполнять так:
Код:

// если не совпадают пароли - показываем ошибку 2
if (strcmp($_POST['pass'], $_POST['repass'])!=0)
output_err(2);
Неизвестный
10.02.2009, 16:43
общий
Код:
if (empty($_POST[$pass != $repass]))

Заменяем на
Код:
if ($_POST['pass'] != $_POST['repass'])
Неизвестный
10.02.2009, 16:50
общий
Огромное спасибо!!!
Всё работает.
Я понял где ошибся.

Спасибо!
Форма ответа