Регистрация пользователя
Продолжение раздела Авторизация пользователя. Создаем страницу регистрации пользователей и помещаем их в модель Accounts.
Создаем файл шаблона views/view-registration.php и вносим маршрут к шаблону в файл config/routes.php
$mvFrontendRoutes = [ ... , "registration/" => "login/view-registration.php" ];
Содержимое файла шаблона view-registration.php
//Если есть авторизованный пользователь, то не даем регистрироваться
//и переводим его на нужный нам URL
if($account)
    $mv -> redirect("home/");
$form = new Form("Accounts");
//Можно также поставить более сильную каптчу "extra/captcha-strong/"
$form -> addField(["Код безопасности", "char", "captcha", ["captcha" => "extra/captcha-simple/",
                                                                     "required" => true]));
$form -> addRule("email", "unique", true, "Данный email уже зарегистрирован.");
$form -> useTokenCSRF();
if(!empty($_POST))
{
    $form -> getDataFromPost() -> validate(["name", "password", "email", "phone", "captcha"]);
    if($form -> captcha && $_SESSION["captcha"] != $form -> captcha)
        $form -> addError("Не верно введен код безопасности.", "captcha");
    
    if($form -> isValid())
    {
        $salt = $mv -> accounts -> createPasswordSalt();
     
        $record = $mv -> accounts -> getEmptyRecord();
        $record -> setValues($form -> getAllValues());
        $record -> date_registration = I18n :: getCurrentDateTime();
        $record -> active = 1;
        $record -> password = Service :: makeHash($form -> password.$salt);
     
        $record -> create();
     
        $account = $mv -> accounts -> login($form -> email, $form -> password);
        
        $mv -> redirect("home/");
    }
}
include $mv -> views_path."main-header.php";
 echo $form -> displayErrors(); 
include $mv -> views_path."main-footer.php";
				
				Предыдущий раздел
Авторизация пользователя 
   
