開発メモ,主に補足by子連れ親父プログラマー

2011-09-11

CakePHP1.3で作る会員管理システム(7) Validate

Validate

ということで無事 members の会員登録部分が動くようになりました。
ブラウザから、

http://localhost/~myname/cake/members

を開いて、いろいろクリックしたりしてみます。

で、会員の新規登録

http://localhost/~myname/cake/members/add

をやってみると、custom エラーになって登録ができません。

最初に bake でモデルを作った時に、バリデーションの設定で、email と password に custom をセットして、その内容を入れていないのが原因です。
ということで validate をちゃんと作ります。

/app/models/member.php の、 今こうなっているところを

  'email' => array(
   'custom' => array(
    'rule' => array('custom'),
    //'message' => 'Your custom message here',
    //'allowEmpty' => false,
    //'required' => false,
    //'last' => false, // Stop validation after this rule
    //'on' => 'create', // Limit validation to 'create' or 'update' operations
   ),
   'email' => array(
    'rule' => array('email'),
    //'message' => 'Your custom message here',
    //'allowEmpty' => false,
    //'required' => false,
    //'last' => false, // Stop validation after this rule
    //'on' => 'create', // Limit validation to 'create' or 'update' operations
   ),
   'notempty' => array(
    'rule' => array('notempty'),
    //'message' => 'Your custom message here',
    //'allowEmpty' => false,
    //'required' => false,
    //'last' => false, // Stop validation after this rule
    //'on' => 'create', // Limit validation to 'create' or 'update' operations
   ),
  ),

以下のように書き換えます。

  'email' => array(
   'custom' => array(
    'rule' => array('isUnique'),
    'message' => 'このメールアドレスは既に登録されています',
    'on' => 'create', // Limit validation to 'create' or 'update' operations
   ),
   'email' => array(
    'rule' => array('email'),
    'message' => 'メールアドレスを正しく入力してください',
   ),
   'notempty' => array(
    'rule' => array('notempty'),
    'message' => 'メールアドレスを入力してください',
   ),
  ),

パスワードの部分は、以下のように書き換えます。

  'password' => array(
   'custom' => array(
    'rule' => array('custom', '/^[a-zA-Z0-9\_\-]{6,10}$/i'),
    'message' => 'パスワードは6文字以上10文字以内で入力してください',
   ),
   'notempty' => array(
    'rule' => array('notempty'),
    'message' => 'パスワードを入力してください',
   ),
  ),

ソース中に日本語が入りましたので文字コードをutf-8に設定して保存します。
会員の新規登録が出来ることを確認します。


http://localhost/~myname/cake/members/add

ブログ アーカイブ

このブログを検索

Powered by Blogger.

ラベル

php (17) jQuery (13) OSX (10) MySQL (8) Javascript (7) Postgres (7) port (7) apache (6) Java (3) Smarty (2) html (2) pear (2) FCKEditor (1) XAMPP (1) css (1) git (1) perl (1) ruby (1)

Facebookバナー