[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Код регистрации
Dno
Здравствуйте.
Есть форма регистрации.
Инпуты: логин, пароль, повторите пароль, email.

MVC
Контроллер определяет, былали нажата кнопка регистрации, если была, вызывай функцию.

if(isset($_POST['registration'])){
registration();
}


Модель обрабатывает данные, фильтрует и т.п.
// Регистрация
function registration(){
global $db;
$error = '';
$login = strip_tags(trim($_POST['login']));
$password = trim($_POST['password']);
$rpassword = trim($_POST['rpassword']);
$email = strip_tags(trim($_POST['email']));

// Если не заполнены все поля
if(empty($login) || empty($password) || empty($rpassword) || empty($email)) $error .= '<li>Вы не заполнили все поля</li>';
// Если все поля заполнены
if(!empty($password) && !empty($rpassword) && !empty($login) && !empty($email)){
// Проверяем логин
$res = mysqli_query($db, "SELECT id FROM users WHERE login='$login'");
$row = mysqli_num_rows($res);
if($row) $error .= '<li>Логин занят</li>';
// Проверяем пароли
if($password != $rpassword) $error .= '<li>Пароли не совпадают</li>';
// Проверяем email
$res = mysqli_query($db, "SELECT id FROM users WHERE email='$email'");
$row = mysqli_num_rows($res);
if($row) $error .= '<li>E-mail адресс занят</li>';
}

// Если ошибок нет, регистрируем.
if(empty($error)){
$password = md5($password);
$res = mysqli_query($db, "INSERT INTO users (login,password,email) values ('$login','$password','$email')");
if(mysqli_affected_rows($db) > 0) $_SESSION['access'] = "<span style='color:green;'>Вы успешно зарегистрированы</span>";
}else{
$_SESSION['error'] = "$error";
}
}


Собственно вопрос: Как реализация такой регистрации? Где можно сократить код, что сделать по другому?

Да я знаю можно сделать проверку email на валидность, добавить фильтров для name email и password которые приходят постом... но повторюсь, пока интересует как можно сократить данный код, интересует вопрос безопасности... Ну в общем у знатоков есть к чему придраться к новичку...

ps. код писал сам, минут за 5, всю логику знаю на 500% как работает. (Это я к тому, что-бы щас не отвечали в теме как к Васе Пупкину.)
Быстрый ответ:

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