ビルトインされたバリデーションルール
CakePHP標準で多くのバリデーションルールが搭載されています。
ソース:/cake/libs/validation.php
email / maxLength / minLength / time / numeric /
email (=>メールアドレス)
メールアドレスであることを検証
$deep:trueに設定した場合は、ホストの検索まで行う。(getmxrr, checkdnsrr, gethostbynamelの順で使用可能な関数を用いる。)
$regex:正規表現でドメインを指定するとドメイン制限(指定のドメインのメールアドレスのみ許可)が可能
[php]
var $validate = array(
'email' => array(
// emailアドレスかどうか
'rule' => 'email'
)
);
var $validate = array(
'email' => array(
// 入力アドレスのドメインの存在有無を確認する。
'rule' => array('email', true),
'message' => 'Please supply a valid email address.'
)
);
var $validate = array(
'email' => array(
// gmailのみ許可する。
'rule' => array('email', false, '\gmail.com\'),
'message' => 'Please supply a valid email address.'
)
);
[/php]
maxLength(=>最大文字数)
mb_strlenで対象フィールド($check)の文字数をカウントし、最大文字数($max)以下であるかどうかを検証
[php]
var $validate = array(
'title' => array(
'rule' => array('maxLength', 50),
'message' => 'Title must be no larger than 50 characters long.'
)
);
[/php]
minLength(=>最小文字数)
mb_strlenで対象フィールド($check)の文字数をカウントし、最小文字数($min)以上であるかどうかを検証
[php]
var $validate = array(
'title' => array(
'rule' => array('minLength', 8),
'message' => 'Title must be at least 8 characters long.'
)
);
[/php]
time(=>時間)
時間フォーマットであるかを検証。フォーマットはHH:MM(24時間表記)もしくは、HH:MMam/HH:MMpm (HH:MMとam/pmの間に半角スペースも可)のみ
**ただし、数値のみでもバリデートされるためあまり使えない。
[php]
var $validate = array(
'starttime' => array(
'rule' => array('time'),
'message' => 'Start Time must be in time format.'
)
);
[/php]
numeric(=>数値)
数値であるかを検証。is_numericを使用しているため、小数・マイナスの数値も通します。
[php]
var $validate = array(
'cars' => array(
'rule' => 'numeric',
'message' => 'Please supply the number of cars.'
)
);
[/php]
url(=>URL)
URLであるかを検証。http(s) / ftp(s) / file / news / gopherのほかIPアドレスなどもOK
ブランクを許可したい場合は、'allowEmpty' => trueを追加してください。
$strict:trueに設定した場合は、httpなどのプレフィックスが必須
[php]
// url
var $validate = array(
'website' => array(
'rule' => 'url',
'allowEmpty' => true,
'message' => 'Please supply the valid url.'
)
);
// strict => true
var $validate = array(
'website' => array(
'rule' => array( 'url', true),
'allowEmpty' => true,
'message' => 'Please supply the valid url.'
)
);
[/php]
alphaNumeric(=>アルファベット・数字限定)
アルファベット・数字のみであることを検証
[php]
var $validate = array(
'password' => array(
'rule' => 'alphaNumeric',
'message' => 'Password must only contain letters and numbers.'
)
);
[/php]
isUnique(=>重複データがない)
重複データがないことを検証
[php]
var $validate = array(
'username' => array(
'rule' => 'isUnique',
'message' => 'Usernames has already been in.'
)
);
[/php]
関連記事
-
Sessionコンポーネント
ソース: /cake/libs/controller/components/session.php read read($name = null) セッションの情報を読み込みます。 $
-
Secutiryユーティリティ
CakePHPでは、データのハッシュ化もしくは暗号化のためのメソッドSecurityユーティリティが用意されています。 ソース: /cake/libs/security.php Security:
-
独自のバリデーションルール
CakePHPで組み込みバリデーションをつくる方法は色々あります。 参考:Data Validation — CakePHP Cookbook v1.3 documentation 上記リンク内に
-
Htmlヘルパー
ソース:\cake\libs\view\helpers\html.php charset / 文書の文字コードを設定する <?php echo $this->Html-
-
ユーザ登録(仮登録・メール・本登録)
ここ最近は、メールアドレスだけでなく、SNSのアカウントと連携してユーザ登録することもできるWebサービスが増えてきましたね。ユーザは割合としてどちらを選んでるのか気になるところですが。私はできるだけ
-
メール送信(qdmail)
CakePHP(+qdmail)でメール送信する処理を実装しました。 準備 2つのライブラリ(.php)をダウンロードし、以下のように配置して下さい。 app/controllers/compo
-
複数ファイルアップロード
CakePHPで複数ファイルのアップロードについて調べてみました。といっても普通のPHPのコードと同じではありますが、postするフィールド名に[]を付与して配列にします。 view
-
シンプルに設置できる数字Captcha「MathCaptcha」
スパム防止などで利用されているCaptchaですが、数字版で使えるものがないか探してみました。 この「MathCapthca」は非常にシンプルに設置できるのはいいですが、やっぱりクエスチョンの部分は
-
Textヘルパー
Textヘルパーには、テキスト処理に関する便利な機能があります。リンク付与やテキストの抜粋・ハイライトや切り取り処理など。ソース:/cake/libs/view/helpers/text.php
-
CakePHP 1.3 インストール
使い古されている手ではありますが、表題の件とレンタルサーバへの配置方法などにも使えますので参考にしていただけたらと思います。 まずはレンタルサーバでCakePHPを動作させる CakePHPア
- PREV
- Twenty Ten カスタマイズ
- NEXT
- 独自のバリデーションルール