Регистрация пользователя
Продолжение раздела Авторизация пользователя. Создаем страницу регистрации пользователей и помещаем их в модель Accounts.
Создаем файл шаблона views/view-registration.php и вносим маршрут к шаблону в файл config/routes.php
$mvFrontendRoutes = array( ... , "registration/" => "login/view-registration.php" );
Содержимое файла шаблона view-registration.php
<? //Если есть авторизованный пользователь, то не даем регистрироваться //и переводим его на нужный нам URL if($account) $mv -> redirect("home/"); $form = new Form("Accounts"); //Можно также поставить более сильную каптчу "extra/captcha-strong/" $form -> addField(array("Код безопасности", "char", "captcha", array("captcha" => "extra/captcha-simple/", "required" => true))); $form -> addRule("email", "unique", true, "Данный email уже зарегистрирован."); $form -> useTokenCSRF(); if(!empty($_POST)) { $form -> getDataFromPost() -> validate(array("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(); ?> <form method="post" action="<? echo $mv -> root_path; ?>registration/"> <table> <? echo $form -> display(array("name", "email", "password", "phone", "captcha")); ?> </table> <div class="form-buttons"> <? echo $form -> displayTokenCSRF(); ?> <input type="submit" value="Зарегистрироваться" /> </div> </form> <? include $mv -> views_path."main-footer.php"; ?>