モデルでバリデーションを行い、ユーザー情報のチェックを行う。
それと、メソッド名をaddからregisterに変更してみた。
<?php class MemberController extends AppController { var $name = 'Member'; var $uses = 'User'; var $components = array('Auth'); var $helpers = array('Html', 'Form'); function beforeFilter() { parent::beforeFilter(); $this->Auth->allow('register'); } function index() { } function login() { } function logout() { $this->redirect($this->Auth->logout()); } function register() { $this->pageTitle = 'MOSHIMORE ユーザー登録'; if(!empty($this->data)) { $this->User->set($this->data['User']); $errormsgs = $this->validateErrors($this->User); $errorcount = $this->validate($this->User); if( empty($this->data['User']['password2']) || $this->data['User']['password1'] != $this->data['User']['password2'] ) { $errormsgs['password2'] = '確認用パスワードにパスワードと同じ値を入力してください。'; $errorcount++; } if($errorcount == 0) { if(!empty($this->data['input']['step']) && $this->data['input']['step'] == 'confirm') { $this->data['User']['password'] = $this->Auth->password($this->data['User']['password1']); $this->User->create(); $this->User->save($this->data['User']); $this->redirect('/member/login', true); } else { $this->render('confirm'); } } else { $this->set('errormsgs', $errormsgs); $this->set('errorcount', $errorcount); } } } } ?>
