Здравствуйте. Я пишу дипломный проект. Решил с начала заняться организацией формы регистрации и авторизации. Хочу узнать ваше экспертное мнение по поводу моего решения. Буду очень признателен за указанные ошибки и недочеты. Форма регистрации Код (PHP): <html><title>Регистрация</title> <head> <meta http-equiv="Content-Type" content="text/html; charset=cp1251"> </head> <body> Введите имя пользователя: <form method="post" action="register.php"> <input type="text" name="user_name" title="Длина имени от 4 до 25 символов"><br /> Введите табельный номер: <input type="text" name="user_number" title="Длина номера от 4 символов"><br /> Введите пароль: <input type="password" name="user_password" title="Длина пароля от 3 до 12 сиволов"><br /> <input type="submit" name="register" value="Регистрация"></td> </form> <br /><a href=# onClick="history.back()">назад</a> </body> </html> Обработчик Код (PHP): <?php #Подключение к базе данных if (isset($_POST['register'])) { require_once 'db_vars.inc'; $login = mysql_real_escape_string($_POST['user_name']); $login = trim(mb_strtolower($login)); $login = htmlspecialchars($login); $password = mysql_real_escape_string($_POST['user_password']); $password = trim($password); $password = htmlspecialchars($password); $number = mysql_real_escape_string($_POST['user_number']); $number = htmlspecialchars(trim($number)); # Проверяем заполнены ли все поля и соответсвуют ли данные требованиям if ((strlen($login) > 3) && (strlen($login) < 26) && (strlen($password) > 2) && (strlen($password) < 13) && (strlen($number)>3) && (strlen($number)<6)) { # Проверяем есть ли пользователь с таким же именем $query = "SELECT `id_user` FROM `users` WHERE `login_user` = '$login' AND `personal_number` = '$number' LIMIT 1"; $result = mysql_query($query) or die("Невозможно выполнить запрос № 1 - ".mysql_error()); if (mysql_num_rows($result) == 1) { echo "Пользователь с таким именем уже существует!"; echo "<meta http-equiv=\"Refresh\" content=\"2; URL=new_user.html\">"; } else { # Добавляем новую учетную запись в базу $query = "INSERT INTO `users` (login_user,password_user,personal_number) VALUES ('$login',PASSWORD('$password'),'$number')"; $result = mysql_query($query) or die("Невозможно выполнить запрос № 2 - ".mysql_error()); if ($result){ echo "Здравствуйте, вы зарегистрировались в системе!"; echo "<meta http-equiv=\"Refresh\" content=\"2; URL=main.php\">"; } else "Не могу добавить запись в базу."; } } else { echo "Длина имени от 4 до 25 символов. Длина пароля от 7 до 12 символов.Длина табельного номера 4 символа"; echo "<meta http-equiv=\"Refresh\" content=\"5; URL=new_user.html\">"; } mysql_close(); } ?>
Теоретически база может быть перенесена на другую субд, например на постгри. Что в этом случае будет с паролями?