[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Код регистрации
Tumour
Всем привет. Вообщем у меня есть это:
 
<?php
//Открываем соединение с базой данных
@$connect = mysqli_connect("localhost", "root", "", "users");
if (!$connect){
exit;
}
?>
<html>
<
head>
<
meta charset="utf-8">
<
title>Регистрация</title>
</
head>
<
body>
<
form method = "POST">
Логин: <input type = "text" name = "login"><br>
Пароль:<input type = "password" name = "pas1"><br>
Повторите пароль:<input type = "password" name = "pas2"><br>
Ваш EMail: <input type = "email" name = "email"><br>
<
input type="radio" name="typeuser" id = "upper" value = "upper">
<
label for="upper">Аппер</label>
<
input type="radio" name="typeuser" id = "lifer" value = "lifer">
<
label for="lifer">Лайфер</label><br>

<
input type = "submit">
</
form>
</
body>
</
html>
<?php
//Глобальные переменные типа $_POST, для удобства запихиваем в переменную и естественно пытаемся сразу обезопасить
$login = trim($_POST['login']);
$pas1 = md5(md5(trim($_POST['pas1'])));
$pas2 = md5(md5(trim($_POST['pas2'])));
$email = trim($_POST['email']);
$err = array();
//Проверяем не пусты ли формы для регистрации
if (!empty($pas1) && !empty($pas2) && !empty($login) && !empty($email)){
//Проверяем логин на не нужные символы типа русского язык т.д
if(!preg_match("/^[a-zA-Z0-9]+$/",$login)){
$err[] = "<br>Логин может состоять только из букв английского алфавита и цифр";
}
//Проверяем количесво символов в логине (Должно быть не больше 30 и не меньше 3)
if (strlen($login) < 3 or strlen($login) > 30){
$err[] = "<br>Логин должен быть не менее 3 символов и не более 30";
}
//Проверяем пароль на количество символов (Должно быть не больше 20 и не меньше 8)
if (strlen($pas1) < 8 or strlen($pas1) > 20 or strlen($pas2) < 8 or strlen($pas2) > 20){
$err[] = "<br>Пароль должен быть не менее 8 символов и не более 20";
}
//Проверяем пароли на совпадение
if ($pas1 != $pas2){
$err[] = "<br>Пароли должны совпадать";
}
//Переменная для проверки логина и пароля
$query = mysqli_query($connect, "SELECT * FROM `lifer` WHERE `lifer_login` = '".$login."'");
//Проверяем существует ли, такой логин
if (mysqli_data_seek($query, 0) > 0){
$err[] = "<br>Такой логин существует попробуйте еще раз!";
}
//Если пользователь прошел все проверки, то регистрируем его, иначе пишим ему, где он допустил ошибку
if (count($err) == 0){
$result = "INSERT INTO `lifer`(`lifer_login`, `lifer_password`, `lifer_email`, `lifer_age`)
VALUES ('"
.$login."', '".$pas1."', '".$email."', '".$age."')";
if (mysqli_query($connect, $result)){
echo $login . ", добро пожаловать, вы успешно зарегестрированы!";
}
}
else{
echo "<br>Не удалось зарегистроватся";
foreach ($err as $error){
echo $error . "<br>";
}
}
}

//Закрываем соединение с базой данных
@$close = mysqli_close($connect);
if (!$close){
echo 'Все хорошо, закрыто';
}
?>


Что здесь с точки зрения безопасности улучшить, добавить, т.д.
Максимально безопаснее.
Помогите пожалуйста, опыта мало, а сделать нужно.
Код мой, но некоторые моменты слизал.
Вообщем больше критики.


_____________
Путешествуй с BookRestEasy.com
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.