EC-CUBE:SC_FormParamクラスによるパラメーターチェック方法
원문출처 | 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에 입력 경로의 파일이 없으면 오류를 반환 |
도움이 되었으면 좋겠습니다.
-
클래스의 사용
클래스의 사용
인스턴스의 생성 클래스가 선언되고 나면, 선언된 클래스로부터 인스턴스를 생성할 수 있습니다. PHP에서는 new 키워드를 사용하여 인스턴스를 생성할 수 있습니다. 이때 클래스 이름을 통해 생성자로 필요한 인수를 전달할 수 있습니다. 문법 $객체이름 = new...Date2019.10.03 Category클래스 Views93 -
클래스의 구조
클래스의 구조
클래스의 구조 PHP에서 클래스는 class 키워드를 사용하여 다음과 같이 선언합니다. 문법 class 클래스이름 { 클래스의 프로퍼티과 메소드의 정의; } PHP에서 클래스의 이름을 생성할 때는 반드시 다음 규칙을 지켜야만 합니다. 1. 클래스의 이름은 숫자와의 ...Date2019.10.03 Category클래스 Views35 -
클래스와 객체의 기초
クラス(class)とオブジェクト(object) オブジェクト(object)とは、実生活では、我々が認識することができるもので理解することができます。 これらのオブジェクトの状態(state)と行動(behavior)は、それぞれのプロパティ(property)とメソッド(met...Date2019.10.03 Category클래스 Views56 -
EC-CUBE:SC_FormParamクラスによるパラメーターチェック方法
EC-CUBE:SC_FormParamクラスによるパラメーターチェック方法
EC-CUBE에 대한 인터넷상에서 아직 정보가 많이 부족합니다. 예를 들어 플러그인 작성에 원래 폼을 만들어도 SC_FormParam 클래스 를 사용하여 어떻게 확인하면 좋은 것인지 조사해도 좀처럼 나오지 않습니다. 그래서 내가 독자적으로 조사한 속에서 조금씩 정...Date2019.10.03 CategoryEC-CUBE 2.x Views119 -
EC-CUBE2.12 運用マニュアル
EC-CUBE ver2120 2121 2122 運用マニュアル1 Page EC-CUBE Ver2120 Ver2121 Ver2122 運用マニュアル 2012年11月28日 Thi s document is licensed under a Creative Commons 表示 - 継承 2 1 日本 License THEVOS ECO LAB Inc EC-CUBE ver2120 2121 212...Date2019.09.29 CategoryEC-CUBE 운용 설명서 Views62 -
単体テストガイドライン
単体テストガイドライン
本ガイドラインはEC-CUBEの単体テストをPHPUnitを使って行う上でのガイドラインを株式会社SHIFT様(http://www.shiftinc.jp/)のご協力によりまとめたものとなります。 各クラス共通のガイドライン1. テストを含めたフォルダ構成テストコードを含んだフォルダ構...Date2019.09.28 CategoryEC-CUBE 2系 Views86 -
リファクタリングガイドライン
リファクタリングガイドライン
init 関数init 関数は, クラスの初期化を目的する. ビジネスロジックの記述はしないこと <?php function init() { /** * NG ビジネスロジックの記述はしない */ if (count($this->arrPayment) > 0) { $i = 0; foreach ($this->arrPayment as $val) { $this->pa...Date2019.09.28 CategoryEC-CUBE 2系 Views153 -
EC-CUBE標準規約
EC-CUBE標準規約
基本的に Zend Framework PHP 標準コーディング規約 に順ずる.以下, 要点及び相違点を規定する. また, コーディングに際して, 以下のガイドラインに沿うことが望ましい EC-CUBE標準規約 > リファクタリングガイドライン PHPUnitを利用した単体テストを行う際は...Date2019.09.28 CategoryEC-CUBE 2系 Views154 -
デフォルトのtitleを任意のものに変更する方法
EC-CUBE 3.Xでデフォルトでtitle部分に表示されるものを任意で削除・変更したり、あらかじめ用意されているページのページ名(テンプレート名)を任意のものに変更する方法です。 ※紹介している内容はEC-CUBEのVersion 3.0.10で動作確認したもので、デフォルト...Date2019.04.10 CategoryEC-CUBE 3.x Views227 -
titleの並びや区切り記号を変更する方法
EC-CUBE 3.Xは、デフォルトのテンプレートだとtitle表示が「ショップ名 / ページ名」という形になっていますが、それを任意の並びにしたり区切り記号を変更したりする方法です。 ※紹介している内容はEC-CUBEのVersion 3.0.10で動作確認したもので、デフォルト...Date2019.04.10 CategoryEC-CUBE 3.x Views96 -
商品数や階層に関係なく全カテゴリーを表示させる方法
EC-CUBEの備忘録。デフォルトのテンプレートだとサイドに表示されている商品カテゴリーですが、商品登録がない場合はカテゴリー名が表示されず、商品が登録されていたとしても親カテゴリーのページでなければ子カテゴリー名は表示されないようになっています。...Date2019.04.10 CategoryEC-CUBE 2.x Views260 -
商品名などで長くなったテキストを省略する方法
引き続きEC-CUBEの備忘録です。商品のタイトルや紹介文が指定した文字数以上になったときに「...」などを表示して、見栄えを揃える方法です。jQueryを使うとかCSSのtext-overflowなんかでも同じ事はできますが、Smartyを使って実装するものになります。 ※EC-CU...Date2019.04.10 CategoryEC-CUBE 2.x Views45 -
サイトデザインをPCで統一させる方法
EC-CUBEはもともとスマートフォンやモバイル用のテンプレートが用意されており、それぞれのデバイスで閲覧すると各テンプレートに振り分けらるようになっているのですが、それを無効にする方法です。この機能自体は良いと思うのですが、例えばモバイルまで手が...Date2019.04.10 CategoryEC-CUBE 2.x Views52 -
商品ステータスを変更・追加する方法
EC-CUBE自体をまだあまり触ったこともなければ、そんなに頻繁に使わないのもあって、しばらくすると簡単なことでもいろいろと忘れてしまうので備忘録。デフォルトだと「NEW」とか「残りわずか」などで登録されている商品ステータスを任意のものに変更・追加す...Date2019.04.10 CategoryEC-CUBE 2.x Views62 -
新規作成したページURLから「user_data」を消す方法とURLを出力するテンプレートタグ
EC-CUBE 3.Xではもともと用意されているページを利用するだけでなくオリジナルで新規ページを追加することもできるのですが、その場合作成したページのURLに「user_data」が付与されています。この「user_data」という部分をURLから消す方法とそれに関連して新...Date2019.04.10 CategoryEC-CUBE 3.x Views863 -
메일 사용자 설명서
메일 사용자 설명서
원 포인트 가이드메일 소프트에 다음 정보를 설정하십시오. 메일 서버 (POP)sv11.star.ne.jp메일 서버 (SMTP)sv11.star.ne.jp계정 (사용자 이름)만든 계정 이름 (@이후도 포함)비밀번호설정 한 패스워드Date2019.03.29 Category메일 서비스 Views61 -
페이스북위젯 삽입하기
페이스북 위젯을 삽입하는 방법을 알아보겠습니다. 1. 페이스북 위젯을 설정하는 곳으로 갑니다. ( https://developers.facebook.com/docs/plugins/page-plugin ) 2. 원하는 위젯모양을 만듭니다. 밑의 이미지를 보시면 쉽게 이해가 되실꺼예요. 3. 설정이 끝...Date2018.12.15 Category팁 & 노하우 나눔 Views45 -
구글 캘린더 합치기
구글 캘린더로 일정관리를 하는 사람이라면 한번쯤 여러개로 나눠진 캘린더를 하나로 합쳐야 할 때가 생깁니다. 저같은 경우는 처음에 일정관리에 심취해서 캘린더 수를 아주 자세하게 여러개로 나눠 놨었죠. 그러나 최근에서야 단순함의 미학과 효율성에 눈을...Date2018.12.12 Category팁 & 노하우 나눔 Views427 -
THEVOS Youtube BOARD SKIN 사용 설명
THEVOS Youtube BOARD SKIN 사용 설명
[ 스킨 기능 ] - 사용자 정의 자동추가 게시판 스킨을 "INSP 유튜브"으로 변경하고 사용자정의 eid(dex_embed_srl)가 없을겨우 자동으로 추가됨 - 기존게시판에서도 사용가능 ㄴ 게시판에 필요한 사용자 정의는 "thevos_extv_youtube_code" 이다. ㄴ 하지만 sk...Date2018.11.11 Category메뉴얼 Views116
Facebook [ko]댓글