Beispiel #1
0
 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");
 }