Регистрация пользователя
Продолжение раздела Авторизация пользователя. Создаем страницу регистрации пользователей и помещаем их в модель 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";
Предыдущий раздел
Авторизация пользователя