Вот набросал скрипт регистрации на сайте.
<?php
session_start();
if(!$_SESSION['login'])
{
require_once('mysql.php');
$login = $_POST['login'];
$password = $_POST['password'];
$mail = $_POST['mail'];
if(empty($login) ) { echo 'Вы не ввели логин'; exit;}
if(!preg_match("/^[a-z]+$/", $login)) { echo 'Логин должен состоять только из латинских букв в нижнем регистре'; exit; }
if(strlen($login) < 3) { echo 'Длина логина должна быть не менее трех символов'; exit; }
if(strlen($login) > 20) { echo 'Длина логина должна быть не более двадцати символов'; exit; }
if(empty($password) ) { echo 'Вы не ввели пароль'; exit;}
if(!preg_match("/^[a-z]+$/", $password)) { echo 'Пароль должен состоять только из латинских букв в нижнем регистре'; exit; }
if(strlen($password) < 5) { echo 'Длина пароля должна быть не менее пяти символов'; exit; }
if(strlen($password) > 20) { echo 'Длина пароля должна быть не более двадцати символов'; exit; }
if(empty($mail) ) { echo 'Вы не ввели мейл'; exit;}
if(!preg_match('/^.+\@.+\.[a-z]+$/', $mail)) { echo 'Мейл должен состоять только из латинских букв в нижнем регистре'; exit; }
if(strlen($mail) < 5) { echo 'Длина мейла должна быть не менее пяти символов'; exit; }
if(strlen($mail) > 50) { echo 'Длина мейла должна быть не более пятидесяти символов'; exit; }
$result = mysqli_query($db, "SELECT login FROM users WHERE login='$login'");
$row = mysqli_fetch_array($result);
if ($row['login'] == $login)
{ echo 'Такой логин есть'; exit; }
$result2 = mysqli_query($db, "SELECT mail FROM users WHERE mail='$mail'");
$row2 = mysqli_fetch_array($result2);
if ($row2['mail'] == $mail)
{ echo 'Такой mail есть'; exit; }
mysqli_query($db, "INSERT INTO users (login,password,mail) VALUES('$login','$password','$mail')");
exit;
}
header("Location: index.php");
?>
Знающие люди скажите есть ли в этом коде какая либо уязвимость или может можно все проще сделать?