フォームバリデーション、Emailアドレスのチェック

2015年11月30日 at 14:35

公式ガイドブックの296ページあたりを読んでいます。
外部フォームを作るため、5.6向けに書かれた掲載コードを5.7に対応させるべく研究しています。

そもそも、フォームのバリデーションを行うコードが5.6の場合

Loder::helper('validation/form')

だったと思うのですが、
Core::make('hoge/hoge')

みたいな書き方になるだろうと思い色々調べています。

/(c5_root)/concrete/src/Validation/ValidationServiceProvider.php
の中に
$singletons = array(
'helper/validation/antispam' => '\Concrete\Core\Antispam\Service',
'helper/validation/captcha' => '\Concrete\Core\Captcha\Service',
'helper/validation/file' => '\Concrete\Core\File\ValidationService',
'helper/validation/form' => '\Concrete\Core\Form\Service\Validation',
'helper/validation/identifier' => '\Concrete\Core\Utility\Service\Identifier',
'helper/validation/ip' => '\Concrete\Core\Permission\IPService',
'helper/validation/numbers' => '\Concrete\Core\Utility\Service\Validation\Numbers',
'helper/validation/strings' => '\Concrete\Core\Utility\Service\Validation\Strings',
'helper/validation/banned_words' => '\Concrete\Core\Validation\BannedWord\Service',
'helper/security' => '\Concrete\Core\Validation\SanitizeService',

'captcha' => '\Concrete\Core\Captcha\Service',
'ip' => '\Concrete\Core\Permission\IPService'
);

上記のようなコードを見つけ、おそらく連想配列のキーの書き方が、Core::makeで呼び出す時の書き方かな、なんて目星をつけました。
ところが、E-mailのバリデーションっぽいところが見当たりません。
色々調べていると下記リンクのIssueを見つけました。

http://github.com/concrete5/concrete5/issues/652

結局これって、is_email()がマルチバイトに対応しているかしていないかの話だと思うのですが、マルチバイトが通るとわかった結果、is_email()を使ったフォームのEメールアドレスバリデーションの機能は実装されたのでしょうか?

どこか見当違いのところ探してしまってますかね???

タグ:

Re: フォームバリデーション、Emailアドレスのチェック

2015年11月30日 at 14:52
emailのバリデーションはユーザー登録時やフォームブロックタイプでやっていると思いますのでこちらが参考になるかもしれません

ユーザー登録時
http://github.com/concrete5/concrete5/blob/develop/web/concrete/controllers/single_page/dashboard/users/add.php#L51

フォームブロック
http://github.com/concrete5/concrete5/blob/develop/web/concrete/blocks/form/controller.php#L383
 

Re: フォームバリデーション、Emailアドレスのチェック

2015年11月30日 at 15:17
なるほど、言われてみればそうでした!
参考にします!