Просмотр поста

.
Milordas

Всем привет, вот пробую написать скрипт регистрации. всё вроде бы хорошо, НО...
если не ввести пароль, проверка всё-равно проходит. и записываеется в поле `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");

?>