PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- public function action_registration()
- {
- {
- try {
- // производим проверку всех полей
- $object = Validation::factory($this->request->post());
- $object
- ->rule('username', 'not_empty')
- ->rule('password', 'not_empty')
- ->rule('email', 'email');
- $user = ORM::factory('User') // если проверка пройдена - регистрируем
- ->set('email', $this->request->post('email'))
- ->set('username', $this->request->post('username'))
- ->set('password', $this->request->post('password'))
- ->save();
- // даем новому пользователю роль для логина
- // очищаем массив с POST
- $to = $this->request->post('email');
- $subject = Kohana::message('account', 'email.themes.registration');
- $from = Kohana::message('account', 'email.from');
- $message = 'Вы успешно зарегистрировались с паролем - ' . $this->request->post('password');
- Email::send($to, $from, $subject, $message, $html = false); // отправляем пользователю сообщение с его паролем
- Auth::instance()->force_login($user); // сразу же авторизуем его, без ввода логина и пароля
- HTTP::redirect('/user');
- } catch (ORM_Validation_Exception $e) {
- // если во время валидации возникли ошибки
- $data['messageReg'] = Kohana::message('account', 'errorReg');
- $data['errors'] = $e->errors('models');
- // берем значения ошибок из файла /application/messages/model/user.php
- }
- }
- $data['email'] = array_key_exists('email', $this->request->post()) ? htmlspecialchars($this->request->post('email')) : '';
- $data['username'] = array_key_exists('username', $this->request->post()) ? htmlspecialchars($this->request->post('username')) : ''; // вставляем данные в формы, если они были введены
- $this->template->content = View::factory('/auth/registration_form',$data);
- }