Всем привет, вот пробую написать скрипт регистрации. всё вроде бы хорошо, НО...
если не ввести пароль, проверка всё-равно проходит. и записываеется в поле `password`, но без мд5. а в поле `pass_nomd5` вообще ничего не записываеется.
в чём может быть ошибка? весь код на три раза проверил.
<?php
session_start();
include($_SERVER['DOCUMENT_ROOT'] . "/sql.php");
$date = (date("d.m.Y") . date(' в H:i'));
if (isset($_POST['submit'])) {
if (!empty($_POST['login'])) {
$_POST['login']=trim($_POST['login']);
if (!preg_match("/^[0-9A-Za-zА-Яа-яЁё]{4,12}+$/ui", $_POST['login'])) {
$err_login = 'Логин введен неверно';
unset($_POST['login']);
}
else {
$login = $_POST['login'];
}
}
else {
unset($_POST['login']);
$err_login_empty = 'Вы не ввели логин';
}
if (!empty($_POST['password'])) {
if (!preg_match("/^[a-z0-9_]{6,15}$/", $_POST['password'])) {
$err_password = 'Пароль введен неверно';
unset($_POST['password']);
}
else {
$password = md5($_POST['password']);
$pass_nomd5= $_POST['password'];
}
}
else {
unset($_POST['password']);
$err_password_empty = 'Вы не ввели пароль';
}
if ((isset($login)) AND (isset($password))) {
$sql=mysql_query("SELECT * FROM `users` WHERE `login`='$login'");
$result=mysql_num_rows($sql);
if ($result!=0) {
$err_num='Этот логин уже занят';
} else {
$sex=$_POST['sex'];
$insert=mysql_query("INSERT INTO `users` (`login`, `password`, `pass_nomd5`, `date_reg`, `real_date`, `sex`, `about`) VALUES ('$login', '$password', '$pass_nomd5', '$date', '$date', '$sex', 'Не заполнено')");
$_SESSION['login'] = $login;
header("Location: http://['HTTP_HOST']."/");
exit();
}
}
}
include ($_SERVER['DOCUMENT_ROOT'] . "/header.php");
if (isset($_SESSION['login'])) {
echo '<div class="error">Вы уже зарегистрированны!</div>';
} else {
if ((isset($err_num)) OR (isset($err_login)) OR (isset($err_password)) OR (isset($err_login_empty)) OR (isset($err_password_empty))) {
echo '<div class="error">';
if (isset($err_num)) {
echo $err_num . '<br>';
}
if (isset($err_login)) {
echo $err_login . '<br>';
}
if (isset($err_login_empty)) {
echo $err_login_empty . '<br>';
}
if (isset($err_password)) {
echo $err_password . '<br>';
}
if (isset($err_password_empty)) {
echo $err_password_empty;
}
echo '</div>';
}
echo '<div class="body">';
echo '<div class="form">';
echo '<div class="article"><b>Регистрация</b></div>';
echo '<div id="hr"></div>';
echo '<div class="info">При вводе логина разрешаются: русские и английские буквы, цифры и знак подчёркивания.<br>
Колличество символов: от 4 до 12<br>
Пример: <b>Иванов_1, Ivanov_2, Иваноff_3</b></div>';
echo '<form action="reg.php" method="post">
* <input type="text" name="login" placeholder="Введите логин">
<div id="hr"></div>
<div class="info">При вводе пароля разрешаются: только английские буквы, цифры и знак подчёркивания.<br>
Колличество символов: от 6 до 15<br>
Пример: <b>Pass_WOrd_1</b></div>
* <input type="password" name="password" placeholder="Введите пароль">
<div id="hr"></div>
Выберите ваш пол<br>
<select name="sex">
<option selected>Не выбрано</option>
<option value="Мужской">Мужской</option>
<option value="Женский">Женский</option>
</select>
<div id="hr"></div>
<input type="submit" name="submit" value="Продолжить">
</form>';
echo '</div>';
echo '</div>';
}
include ($_SERVER['DOCUMENT_ROOT'] . "/footer.php");
?>