Файл: registration.php
Строк: 31
<?php
# подключаем файл ядра
require_once('core/core.php');
# выводи шапку
getHeader();
# проверяем в условии что кнопка submit была нажата
if (isset($_POST['submit'])) {
# подготавливаем данные из формы (фильтровать я их не буду, так как не буду их экранировать)
$login = $_POST['login'];
$password = $_POST['password'];
# ошибки изначально пусты
$err = null;
# подготавливаем запрос на проверку занятости логина
# используем метод PDO::prepare для безопасности и удобства
$sql = $db->prepare("SELECT COUNT(*) FROM users WHERE login = :login");
# выполняем наш запрос
$sql->execute(array(':login' => $login));
# получаем колличество результирующих строк
$check_login = $sql->fetchColumn();
# чекаем данные из формы
# проверяем логин на зянятость, и если он занят подготавливаем текст
if($check_login >= 1) $err .= 'This login is already registered!<br/>';
# проверяем логин на символы, в данном случае разрешены только англ.алфавит и цифры
else if(!preg_match("/[ˆa-zA-Z0-9]/", $login)) $err .= 'Incorrect login!<br/>';
# проверяем форму на пустоту логина и пароля
elseif (empty($login)) $err .= 'Enter your login!<br/>';
if (empty($password)) $err .= 'Enter your password!<br/>';
# если есть ошибки выводим их
if ($err) { echo $err; } else {
# если нет ошибок производим регистрацию
$db->prepare("INSERT INTO users(login, password) VALUES (:login, :password)")
->execute(array(':login' => $login, ':password' => md5(md5($password))));
# отправляем на форму авторизации
header('Location: /login.php');
exit;
}
}
# подгружаем форму
$file = ROOT.'/forms/signup.html';
if(file_exists($file)) require_once $file;
else echo 'form signup.html not found';
# выводим пол
getFooter();