public function action_registration() { // Уже авторизован if (Auth::instance()->logged_in()) { HTTP::redirect("/user/cabinet"); } $model = array(); // Обработка формы if ($_POST) { $vData = $_POST; $validation = Validation::factory($vData); $validation->rule('email', 'not_empty'); $validation->rule('email', 'min_length', array(':value', '2')); $validation->rule('email', 'max_length', array(':value', '250')); $validation->rule('password', 'not_empty'); $validation->rule('password', 'min_length', array(':value', '6')); $validation->rule('password', 'max_length', array(':value', '50')); $validation->rule('password', 'equal_fields', array(':value', $vData['password_confirm'])); // не прошёл валидацию if (!$validation->check()) { $errors = $validation->errors('registrationErrors'); $model = array("error" => ""); PC::degug($errors, "errors"); foreach ($errors as $error) { $model["error"] .= '<div class="alert alert-danger"><p>' . $error . '</p></div>'; } } else { $email = Arr::get($_POST, 'email', ''); $password = Arr::get($_POST, 'password', ''); $confirm_pass = Arr::get($_POST, 'password_confirm', ''); $model_register = new Model_Register(); PC::debug($_POST, "registration form"); // Регистрация прошла успешно if ($model_register->reg($email, $password, 4)) { $model = array("success" => '<div class="alert alert-success">Спасибо за регистрацию! На электронный адрес <b>' . $email . '</b> отправлено письмо для активации аккаунта.</div>'); } else { $errors = $model_register->errors; $model = array("error" => ""); foreach ($errors as $error) { $model["error"] .= '<div class="alert alert-danger"><p>' . $error . '</p></div>'; } } } } $this->title('Регистрация'); $this->page_title('Регистрация'); $this->keywords('Регистрация'); $this->description('Регистрация'); $this->render('user/cabinet/registration.php', $model, "response"); }