EC-CUBE 2.x

EC-CUBE:SC_FormParamクラスによるパラメーターチェック方法

by TheVOS posted Oct 03, 2019
?

Shortcut

Prev前へ 書き込み

Next次へ 書き込み

Larger Font Smaller Font 上へ 下へ Go comment 印刷
?

Shortcut

Prev前へ 書き込み

Next次へ 書き込み

Larger Font Smaller Font 上へ 下へ Go comment 印刷
Extra Form
原文出所 https://colo-ri.jp/develop/2012/12/ec-cube_sc_formparam.html

今お仕事で関わっているEC-CUBEですが、ネット上にはまだまだ情報が少ないです。

例えばプラグイン作成でオリジナルフォームを作っても、SC_FormParamクラスを使って、どうやってチェックしたらいいのか調べてもなかなか出て来ません。
そこで私が独自で調べた中から、少しづつ情報提供していきたいと思います。

※:EC-CUBEのバージョンは2.12.2のものをベースにしています。

SC_FormParamの基本的な使い方

SC_FormParamクラスを使うには、拡張先であるSC_FormParam_Exクラスをインスタンス化して利用します。 ここではPOSTされたデータを設定してみましょう。

$objFormParam = new SC_FormParam_Ex();
$objFormParam->setParam($_POST);

次に、内容の検証ルールを追加します。
ここでは例として名前(性、名)とメールアドレスを必須入力にし、メールアドレスはちゃんとした形式になっているもののみ受け入れるようにしてみます。

$objFormParam->addParam('姓', 'sei', '', '', array('EXIST_CHECK','NO_SPTAB'));
$objFormParam->addParam('名', 'mei', '', '', array('EXIST_CHECK','NO_SPTAB'));
$objFormParam->addParam('メールアドレス', 'email', '', '', array('EMAIL_CHECK'));

後半に挙げる「オプション」が必要な検証ルールについては、次のようにaddParam()の3番目の引数に設定します。

//姓を3文字以内にしたい場合
$objFormParam->addParam('姓, 'sei', 3, '', array('MAX_LENGTH_CHECK'));

そして最後に検証作業。
エラーがあると$arrErr変数にエラーが配列で格納されます。

$arrErr = $objFormParam->checkError();

検証ルールの最後のパラメーターにある配列型の文字のところがポイントなんですけど、ここに様々なルールを追加していくことでいろんな検証ルールを作ることができます。 以下に検証ルール一覧を載せてみたので実際に組み合わせて試してみてください。

$objFormParam->addParam()の4番目の引数は入力値をmb_convert_kana()で変換するための変換オプション文字列を指定します。 変換オプションを指定した場合は、checkError()を実行する前に「$objFormParam->convParam()」を実行する必要があるので注意してください。

SC_FormParam検証ルール一覧

チェック項目 定数名 オプション エラー条件
必須入力の判定 EXIST_CHECK   値の受け取りがない場合エラーを返す
数字の判定 NUM_CHECK   入力文字が数字以外ならエラーを返す
メールアドレス形式の判定 EMAIL_CHECK   メールアドレス形式でないならエラーを返す
メールアドレスに使用できる文字の判定 EMAIL_CHAR_CHECK   メールアドレスに使用できない文字が含まれていたらエラーを返す
携帯メールアドレスの判定 MOBILE_EMAIL_CHECK   SC_Helper_Mobile_Ex::gfIsMobileMailAddress()による判定結果でエラーを返す
英字の判定 ALPHA_CHECK   入力文字が半角英字以外ならエラーを返す
英数字の判定 ALNUM_CHECK   入力文字が英数字以外ならエラーを返す
英数記号の判定 GRAPH_CHECK   入力文字が英数記号以外ならエラーを返す
カタカナの判定 KANA_CHECK   入力文字がカナ以外ならエラーを返す
カタカナの判定2 KANABLANK_CHECK   入力文字がカナ以外ならエラーを返す (タブ、スペースは許可する)
URL形式の判定 URL_CHECK   URLを正規表現で判定する。デフォルトでhttp://があってもOK
IPアドレスの判定 IP_CHECK   IPアドレスでない場合エラーを返す。改行コードが含まれている場合には配列に変換
ドメインチェック DOMAIN_CHECK   ドメインの形式が正しくなければエラーを返す
スペース、タブのみの判定 SPTAB_CHECK   スペース、タブ、改行のみの入力の場合エラーを返す
スペース、タブの判定 NO_SPTAB   入力文字がスペース、タブ、改行を含んでいたらエラーを返す
数字(非ゼロ)の判定 ZERO_CHECK   数値入力値で0が入力された場合エラーを返す
ゼロで開始されている数値の判定 ZERO_START   0で始まる数値が入力されていたらエラーを返す
ファイルの存在チェック FILE_EXISTS   入力パスのファイルが見つからなければエラーを返す
ディレクトリ内のファイル存在チェック FIND_FILE ディレクトリ 指定ディレクトリ内に入力パスのファイルが見つからなければエラーを返す(デフォルトでIMAGE_SAVE_REALDIR)
ディレクトリ存在チェック DIR_CHECK   入力されたパス文字のディレクトリが見つからなければエラーを返す
ファイル名の判定 FILE_NAME_CHECK   入力文字が英数字,’_’,’-‘以外ならエラーを返す
ファイル名の判定(アップロード以外の時) FILE_NAME_CHECK_BY_NOUPLOAD   入力文字が英数字,’_’,’-‘以外ならエラーを返す
最大文字数制限の判定 MAX_LENGTH_CHECK 最大文字数 入力が指定文字数より大きいならエラーを返す
最小文字数制限の判定 MIN_LENGTH_CHECK 最小文字数 入力が指定文字数未満ならエラーを返す
桁数の判定 NUM_COUNT_CHECK 桁数 入力文字の桁数が指定の桁数でなければエラーを返す
必須選択の判定 SELECT_CHECK   プルダウンなどで選択されていない場合エラーを返す
小文字に変換 CHANGE_LOWER   入力文字を小文字に変換する
ダウンロード用ファイルの存在チェック DOWN_FILE_EXISTS   DOWN_SAVE_REALDIR内に入力パスのファイルが見つからなければエラーを返す

お役に立てば幸いです。

Facebook [ja]コメント 


List of Articles
カテゴリー 番号 タイトル 日付 閲覧数
EC-CUBE 2系 39 2.13系 ソフトウェア要件 2019.10.11 63
CSS 38 CSS オブジェクトフィットプロパティ file 2019.12.04 55
CSS 37 Css 텍스트 외곽선 처리하기, Stroke 2019.11.28 115
EC-CUBE 2.x 36 EC CUBEで商品ごとに支払い方法を簡単に分ける file 2019.10.28 670
EC-CUBE 2系 35 EC-CUBE 2系でShift_JISに存在しない文字が含まれた受注データがあると、その受注内容が受注CSVからまるごと欠落する 2020.01.02 93
EC-CUBE 2系 34 EC-CUBE 2系でポート番号付で管理画面を動かす 2020.01.02 68
EC-CUBE 2系 33 EC-CUBE 2系で商品を沢山購入すると住所情報が欠落する 2020.01.02 86
EC-CUBE 2系 32 EC-CUBE 2系で商品情報をCSVで更新するとき関連商品情報が削除される 2020.01.02 107
EC-CUBE 2系 31 EC-CUBE 2系で注文を受けた商品の規格を後で削除すると、管理画面で受注内容を編集できなくなる 2020.01.02 139
EC-CUBE 2系 30 EC-CUBE 2系の「もっと見る」を簡潔に 2020.01.02 627
EC-CUBE 4.x 29 EC-CUBE 4를 설치했을 때 설정 한 데이터베이스 암호는 어디에 저장되는 것입니까? 2019.11.14 393
EC-CUBE運用マニュアル 28 EC-CUBE2.12 運用マニュアル file 2019.09.29 64
EC-CUBE 2系 27 EC-CUBE2.13カスタマイズ:新しいページを追加する file 2019.11.11 642
EC-CUBE 4系 26 EC-CUBE4系で管理画面に新規メニュー項目を追加する方法 file 2019.10.28 502
EC-CUBE 2.x » EC-CUBE:SC_FormParamクラスによるパラメーターチェック方法 2019.10.03 125
EC-CUBE 2系 24 EC-CUBEをインストールする file 2019.12.10 101
EC-CUBE 2系 23 EC-CUBE標準規約 2019.09.28 158
EC-CUBE 2.x 22 EC-CUBE에서 모든 페이지에서 로그인 체크하기 2019.11.11 457
EC-CUBE 2系 21 ECCUBE 2.13のインストール方法をスクリーンショット付きでわかりやすく徹底解説! file 2019.10.10 138
マニュアル 20 THEVOS Youtube BOARD SKIN 사용 설명 2018.11.11 119
Board Pagination Prev 1 2 Next
/ 2