Ignore:
Timestamp:
2007/08/28 14:19:27 (17 years ago)
Author:
nanasess
Message:

リファクタリング

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update/data/class/SC_CheckError.php

    r15346 r15388  
    1212 */ 
    1313class SC_CheckError { 
    14     var $arrErr; 
    15     var $arrParam; 
    16      
    17     // チェック対象の値が含まれる配列をセットする。 
    18     function SC_CheckError($array = "") { 
    19         if($array != "") { 
    20             $this->arrParam = $array; 
    21         } else { 
    22             $this->arrParam = $_POST; 
    23         } 
    24  
    25     } 
    26      
    27     function doFunc($value, $arrFunc) { 
    28         foreach ( $arrFunc as $key ) { 
    29             $this->$key($value); 
    30         } 
    31     } 
    32      
    33     /* HTMLのタグをチェックする */ 
    34     // value[0] = 項目名 value[1] = 判定対象 value[2] = 許可するタグが格納された配列 
    35     function HTML_TAG_CHECK($value) { 
    36         if(isset($this->arrErr[$value[1]])) { 
    37             return; 
    38         } 
    39          
    40         // 含まれているタグを抽出する 
    41         preg_match_all("/<([\/]?[a-z]+)/", $this->arrParam[$value[1]], $arrTag); 
    42  
    43         foreach($arrTag[1] as $val) { 
    44             $find = false; 
    45              
    46             foreach($value[2] as $tag) { 
    47                 if(eregi("^" . $tag . "$", $val)) { 
    48                     $find = true; 
    49                 } else { 
    50                 } 
    51             } 
    52              
    53             if(!$find) { 
    54                 $this->arrErr[$value[1]] = "※ " . $value[0] . "に許可されていないタグ[" . strtoupper($val) . "]が含まれています。<br />"; 
    55                 return; 
    56             }        
    57         }        
    58     } 
    59  
    60     /* 必須入力の判定 */ 
    61     // value[0] = 項目名 value[1] = 判定対象 
    62     function EXIST_CHECK( $value ) {            // 受け取りがない場合エラーを返す 
    63         if(isset($this->arrErr[$value[1]])) { 
    64             return; 
    65         } 
    66         if( strlen($this->arrParam[$value[1]]) == 0 ){                   
    67             $this->arrErr[$value[1]] = "※ " . $value[0] . "が入力されていません。<br />"; 
    68         } 
    69     } 
    70      
    71     /* スペース、タブの判定 */ 
    72     // value[0] = 項目名 value[1] = 判定対象 
    73     function SPTAB_CHECK( $value ) {            // 受け取りがない場合エラーを返す 
    74         if(isset($this->arrErr[$value[1]])) { 
    75             return; 
    76         } 
    77         if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
    78         if(strlen($this->arrParam[$value[1]]) != 0 && ereg("^[  \t\r\n]+$", $this->arrParam[$value[1]])){                        
    79             $this->arrErr[$value[1]] = "※ " . $value[0] . "にスペース、タブ、改行のみの入力はできません。<br />"; 
    80         } 
    81     } 
    82      
    83     /* スペース、タブの判定 */ 
    84     // value[0] = 項目名 value[1] = 判定対象 
    85     function NO_SPTAB( $value ) {           // 受け取りがない場合エラーを返す 
    86         if(isset($this->arrErr[$value[1]])) { 
    87             return; 
    88         } 
    89         if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
    90         if(strlen($this->arrParam[$value[1]]) != 0 && mb_ereg("[  \t\r\n]+", $this->arrParam[$value[1]])){                       
    91             $this->arrErr[$value[1]] = "※ " . $value[0] . "にスペース、タブ、改行は含めないで下さい。<br />"; 
    92         } 
    93     } 
    94      
    95     /* ゼロで開始されている数値の判定 */ 
    96     function ZERO_START($value) { 
    97         if(isset($this->arrErr[$value[1]])) { 
    98             return; 
    99         } 
    100         if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
    101         if(strlen($this->arrParam[$value[1]]) != 0 && ereg("^[0]+[0-9]+$", $this->arrParam[$value[1]])){                         
    102             $this->arrErr[$value[1]] = "※ " . $value[0] . "に0で始まる数値が入力されています。<br />"; 
    103         } 
    104     } 
    105      
    106     /* 必須選択の判定 */ 
    107     // value[0] = 項目名 value[1] = 判定対象  
    108     function SELECT_CHECK( $value ) {           // プルダウンなどで選択されていない場合エラーを返す 
    109         if(isset($this->arrErr[$value[1]])) { 
    110             return; 
    111         } 
    112         if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
    113         if( strlen($this->arrParam[$value[1]]) == 0 ){                       
    114             $this->arrErr[$value[1]] = "※ " . $value[0] . "が選択されていません。<br />"; 
    115         } 
    116     } 
    117  
    118     /* 同一性の判定 */ 
    119     // value[0] = 項目名1 value[1] = 項目名2 value[2] = 判定対象文字列1  value[3] = 判定対象文字列2 
    120     function EQUAL_CHECK( $value ) {        // 入力が指定文字数以上ならエラーを返す 
    121         if(isset($this->arrErr[$value[2]]) || isset($this->arrErr[$value[3]])) { 
    122             return; 
    123         } 
    124         if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
    125         // 文字数の取得            
    126         if( $this->arrParam[$value[2]] != $this->arrParam[$value[3]]) { 
    127             $this->arrErr[$value[2]] = "※ " . $value[0] . "と" . $value[1] . "が一致しません。<br />"; 
    128         } 
    129     } 
    130      
    131     /* 値が異なることの判定 */ 
    132     // value[0] = 項目名1 value[1] = 項目名2 value[2] = 判定対象文字列1  value[3] = 判定対象文字列2 
    133     function DIFFERENT_CHECK( $value ) {        // 入力が指定文字数以上ならエラーを返す 
    134         if(isset($this->arrErr[$value[2]]) || isset($this->arrErr[$value[3]])) { 
    135             return; 
    136         } 
    137         if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
    138         // 文字数の取得            
    139         if( $this->arrParam[$value[2]] == $this->arrParam[$value[3]]) { 
    140             $this->arrErr[$value[2]] = "※ " . $value[0] . "と" . $value[1] . "は、同じ値を使用できません。<br />"; 
    141         } 
    142     } 
    143      
    144     /* 値の大きさを比較する value[2] < value[3]でなければエラー */ 
    145     // value[0] = 項目名1 value[1] = 項目名2 value[2] = 判定対象文字列1  value[3] = 判定対象文字列2 
    146     function GREATER_CHECK($value) {        // 入力が指定文字数以上ならエラーを返す 
    147         if(isset($this->arrErr[$value[2]]) || isset($this->arrErr[$value[3]])) { 
    148             return; 
    149         } 
    150         if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
    151         // 文字数の取得            
    152         if($this->arrParam[$value[2]] != "" && $this->arrParam[$value[3]] != "" && ($this->arrParam[$value[2]] > $this->arrParam[$value[3]])) { 
    153             $this->arrErr[$value[2]] = "※ " . $value[0] . "は" . $value[1] . "より大きい値を入力できません。<br />"; 
    154         } 
    155     } 
    156      
    157      
    158     /* 最大文字数制限の判定 */ 
    159     // value[0] = 項目名 value[1] = 判定対象文字列  value[2] = 最大文字数(半角も全角も1文字として数える) 
    160     function MAX_LENGTH_CHECK( $value ) {       // 入力が指定文字数以上ならエラーを返す 
    161         if(isset($this->arrErr[$value[1]])) { 
    162             return; 
    163         } 
    164         if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
    165         // 文字数の取得            
    166         if( mb_strlen($this->arrParam[$value[1]]) > $value[2] ) { 
    167             $this->arrErr[$value[1]] = "※ " . $value[0] . "は" . $value[2] . "字以下で入力してください。<br />"; 
    168         } 
    169     } 
    170      
    171     /* 最小文字数制限の判定 */ 
    172     // value[0] = 項目名 value[1] = 判定対象文字列 value[2] = 最小文字数(半角も全角も1文字として数える) 
    173     function MIN_LENGTH_CHECK( $value ) {       // 入力が指定文字数未満ならエラーを返す 
    174         if(isset($this->arrErr[$value[1]])) { 
    175             return; 
    176         }                                        
    177         if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
    178         // 文字数の取得        
    179         if( mb_strlen($this->arrParam[$value[1]]) < $value[2] ) { 
    180             $this->arrErr[$value[1]] = "※ " . $value[0] . "は" . $value[2] . "字以上で入力してください。<br />"; 
    181         } 
    182     } 
    183      
    184     /* 最大文字数制限の判定 */ 
    185     // value[0] = 項目名 value[1] = 判定対象文字列  value[2] = 最大数 
    186     function MAX_CHECK( $value ) {      // 入力が最大数以上ならエラーを返す 
    187         if(isset($this->arrErr[$value[1]])) { 
    188             return; 
    189         } 
    190         if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
    191         // 文字数の取得            
    192         if($this->arrParam[$value[1]] > $value[2] ) { 
    193             $this->arrErr[$value[1]] = "※ " . $value[0] . "は" . $value[2] . "以下で入力してください。<br />"; 
    194         } 
    195     } 
    196      
    197     /* 最小数値制限の判定 */ 
    198     // value[0] = 項目名 value[1] = 判定対象文字列  value[2] = 最小数 
    199     function MIN_CHECK( $value ) {      // 入力が最小数未満ならエラーを返す 
    200         if(isset($this->arrErr[$value[1]])) { 
    201             return; 
    202         } 
    203         if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
    204         if($this->arrParam[$value[1]] < $value[2] ) { 
    205             $this->arrErr[$value[1]] = "※ " . $value[0] . "は" . $value[2] . "以上で入力してください。<br />"; 
    206         } 
    207     } 
    208      
    209          
    210     /* 数字の判定 */ 
    211     // value[0] = 項目名 value[1] = 判定対象文字列  
    212     function NUM_CHECK( $value ) {              // 入力文字が数字以外ならエラーを返す 
    213         if(isset($this->arrErr[$value[1]])) { 
    214             return; 
    215         } 
    216         if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
    217         if( strlen($this->arrParam[$value[1]]) > 0 && !EregI("^[[:digit:]]+$", $this->arrParam[$value[1]])) {  
    218             $this->arrErr[$value[1]] = "※ " . $value[0] . "は数字で入力してください。<br />";     
    219         } 
    220     } 
    221      
    222         /* 小数点を含む数字の判定 */ 
    223     // value[0] = 項目名 value[1] = 判定対象文字列  
    224     function NUM_POINT_CHECK( $value ) {                // 入力文字が数字以外ならエラーを返す 
    225         if(isset($this->arrErr[$value[1]])) { 
    226             return; 
    227         } 
    228         if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
    229         if( strlen($this->arrParam[$value[1]]) > 0 && !EregI("^[[:digit:]]+[\.]?[[:digit:]]+$", $this->arrParam[$value[1]])) {  
    230             $this->arrErr[$value[1]] = "※ " . $value[0] . "は数字で入力してください。<br />";     
    231         } 
    232     } 
    233          
    234     function ALPHA_CHECK($value) { 
    235         if(isset($this->arrErr[$value[1]])) { 
    236             return; 
    237         } 
    238         if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
    239         if( strlen($this->arrParam[$value[1]]) > 0 && !EregI("^[[:alpha:]]+$", $this->arrParam[$value[1]])) {  
    240             $this->arrErr[$value[1]] = "※ " . $value[0] . "は半角英字で入力してください。<br />";   
    241         } 
    242     } 
    243      
    244     /* 電話番号の判定 (数字チェックと文字数チェックを実施する。) 
    245         value[0] : 項目名 
    246         value[1] : 電番1項目目 
    247         value[2] : 電番2項目目 
    248         value[3] : 電番3項目目 
    249         value[4] : 文字数制限 
    250     */ 
    251     function TEL_CHECK($value) { 
    252         if(isset($this->arrErr[$value[1]])) { 
    253             return; 
    254         } 
    255          
    256         $cnt = 0; 
    257          
    258         for($i = 1; $i <= 3; $i++) { 
    259             if(strlen($this->arrParam[$value[$i]]) > 0) { 
    260                 $cnt++; 
    261             } 
    262         } 
    263          
    264         // すべての項目が満たされていない場合を判定(一部だけ入力されている状態) 
    265         if($cnt > 0 && $cnt < 3) { 
    266             $this->arrErr[$value[1]] .= "※ " . $value[0] . "はすべての項目を入力してください。<br />"; 
    267         } 
    268                      
    269         for($i = 1; $i <= 3; $i++) { 
    270             if(strlen($this->arrParam[$value[$i]]) > 0 && strlen($this->arrParam[$value[$i]]) > $value[4]) { 
    271                 $this->arrErr[$value[$i]] .= "※ " . $value[0] . $i . "は" . $value[4] . "字以内で入力してください。<br />"; 
    272             } else if (strlen($this->arrParam[$value[$i]]) > 0 && !EregI("^[[:digit:]]+$", $this->arrParam[$value[$i]])) { 
    273                 $this->arrErr[$value[$i]] .= "※ " . $value[0] . $i . "は数字で入力してください。<br />"; 
    274             } 
    275         } 
    276     } 
    277      
    278     /* 関連項目が完全に満たされているか判定  
    279         value[0]        : 項目名 
    280         value[1]        : 判定対象要素名 
    281     */ 
    282     function FULL_EXIST_CHECK($value) { 
    283         $max = count($value); 
    284              
    285         // 既に該当項目にエラーがある場合は、判定しない。 
    286         for($i = 1; $i < $max; $i++) { 
    287             if(isset($this->arrErr[$value[$i]])) { 
    288                 return; 
    289             } 
    290         } 
    291          
    292         $blank = false; 
    293          
    294         // すべての項目がブランクでないか、すべての項目が入力されていない場合はエラーとする。 
    295         for($i = 1; $i < $max; $i++) { 
    296             if(strlen($this->arrParam[$value[$i]]) <= 0) { 
    297                 $blank = true; 
    298             } 
    299         } 
    300          
    301         if($blank) { 
    302             $this->arrErr[$value[1]] = "※ " . $value[0] . "が入力されていません。<br />"; 
    303         } 
    304     } 
    305          
    306     /* 関連項目がすべて満たされているか判定  
    307         value[0]        : 項目名 
    308         value[1]        : 判定対象要素名 
    309     */ 
    310     function ALL_EXIST_CHECK($value) { 
    311         $max = count($value); 
    312              
    313         // 既に該当項目にエラーがある場合は、判定しない。 
    314         for($i = 1; $i < $max; $i++) { 
    315             if(isset($this->arrErr[$value[$i]])) { 
    316                 return; 
    317             } 
    318         } 
    319          
    320         $blank = false; 
    321         $input = false; 
    322          
    323         // すべての項目がブランクでないか、すべての項目が入力されていない場合はエラーとする。 
    324         for($i = 1; $i < $max; $i++) { 
    325             if(strlen($this->arrParam[$value[$i]]) <= 0) { 
    326                 $blank = true; 
    327             } else { 
    328                 $input = true; 
    329             } 
    330         } 
    331          
    332         if($blank && $input) { 
    333             $this->arrErr[$value[1]] = "※ " . $value[0] . "はすべての項目を入力して下さい。<br />"; 
    334         } 
    335     } 
    336      
    337         /* 関連項目がどれか一つ満たされているか判定  
    338         value[0]        : 項目名 
    339         value[1]        : 判定対象要素名 
    340     */ 
    341     function ONE_EXIST_CHECK($value) { 
    342         $max = count($value); 
    343              
    344         // 既に該当項目にエラーがある場合は、判定しない。 
    345         for($i = 1; $i < $max; $i++) { 
    346             if(isset($this->arrErr[$value[$i]])) { 
    347                 return; 
    348             } 
    349         } 
    350          
    351         $input = false; 
    352          
    353         // すべての項目がブランクでないか、すべての項目が入力されていない場合はエラーとする。 
    354         for($i = 1; $i < $max; $i++) { 
    355             if(strlen($this->arrParam[$value[$i]]) > 0) { 
    356                 $input = true; 
    357             } 
    358         } 
    359          
    360         if(!$input) { 
    361             $this->arrErr[$value[1]] = "※ " . $value[0] . "が入力されていません。<br />"; 
    362         } 
    363     } 
    364      
    365     /* 上位の項目が満たされているか判定 
    366         value[0]        : 項目名 
    367         value[1]        : 判定対象要素名 
    368     */ 
    369     function TOP_EXIST_CHECK($value) { 
    370         $max = count($value); 
    371              
    372         // 既に該当項目にエラーがある場合は、判定しない。 
    373         for($i = 1; $i < $max; $i++) { 
    374             if(isset($this->arrErr[$value[$i]])) { 
    375                 return; 
    376             } 
    377         } 
    378          
    379         $blank = false; 
    380         $error = false; 
    381                  
    382         // すべての項目がブランクでないか、すべての項目が入力されていない場合はエラーとする。 
    383         for($i = 1; $i < $max; $i++) { 
    384             if(strlen($this->arrParam[$value[$i]]) <= 0) { 
    385                 $blank = true; 
    386             } else { 
    387                 if($blank) { 
    388                     $error = true; 
    389                 } 
    390             } 
    391         } 
    392          
    393         if($error) { 
    394             $this->arrErr[$value[1]] = "※ " . $value[0] . "は先頭の項目から順番に入力して下さい。<br />"; 
    395         } 
    396     } 
    397      
    398      
    399     /* カタカナの判定 */ 
    400     // value[0] = 項目名 value[1] = 判定対象文字列  
    401     function KANA_CHECK( $value ) {             // 入力文字がカナ以外ならエラーを返す 
    402         if(isset($this->arrErr[$value[1]])) { 
    403             return; 
    404         } 
    405         if(strlen($this->arrParam[$value[1]]) > 0 && ! mb_ereg("^[ァ-ヶヲ-゚ー]+$", $this->arrParam[$value[1]])) { 
    406             $this->arrErr[$value[1]] = "※ " . $value[0] . "はカタカナで入力してください。<br />";   
    407         } 
    408     } 
    409      
    410     /* カタカナの判定2(タブ、スペースは許可する) */ 
    411     // value[0] = 項目名 value[1] = 判定対象文字列  
    412     function KANABLANK_CHECK( $value ) {                // 入力文字がカナ以外ならエラーを返す 
    413         if(isset($this->arrErr[$value[1]])) { 
    414             return; 
    415         } 
    416         if(strlen($this->arrParam[$value[1]]) > 0 && ! mb_ereg("^([  \t\r\n]|[ァ-ヶ]|[ー])+$", $this->arrParam[$value[1]])) { 
    417             $this->arrErr[$value[1]] = "※ " . $value[0] . "はカタカナで入力してください。<br />";   
    418         } 
    419     } 
    420  
    421     /* 英数字の判定 */ 
    422     // value[0] = 項目名 value[1] = 判定対象文字列  
    423     function ALNUM_CHECK( $value ) {                // 入力文字が英数字以外ならエラーを返す 
    424         if(isset($this->arrErr[$value[1]])) { 
    425             return; 
    426         }                                        
    427         if( strlen($this->arrParam[$value[1]]) > 0 && ! EregI("^[[:alnum:]]+$", $this->arrParam[$value[1]] ) ) {  
    428             $this->arrErr[$value[1]] = "※ " . $value[0] . "は英数字で入力してください。<br />";    
    429         } 
    430     } 
    431  
    432     /* 必須選択の判定 */ 
    433     // value[0] = 項目名 value[1] = 判定対象 
    434     function ZERO_CHECK( $value ) {             // 入力値で0が許されない場合エラーを返す 
    435          
    436         if($this->arrParam[$value[1]] == "0" ){                      
    437             $this->arrErr[$value[1]] = "※ " . $value[0] . "は1以上を入力してください。<br />"; 
    438         } 
    439     } 
    440  
    441     /* 桁数の判定 (最小最大)*/ 
    442     // value[0] = 項目名 value[1] = 判定対象文字列 value[2] = 最小桁数 value[3] = 最大桁数 
    443     function NUM_RANGE_CHECK( $value ) {        // 入力文字の桁数判定 → 最小桁数<入力文字列<最大桁数 
    444         if(isset($this->arrErr[$value[1]])) { 
    445             return; 
    446         }                                         
    447         // $this->arrParam[$value[0]] = mb_convert_kana($this->arrParam[$value[0]], "n");                                        
    448         $count = strlen($this->arrParam[$value[1]]); 
    449         if( ( $count > 0 ) && $value[2] > $count || $value[3] < $count ) {   
    450             $this->arrErr[$value[1]] =  "※ $value[0]は$value[2]桁〜$value[3]桁で入力して下さい。<br />"; 
    451         } 
    452     } 
    453  
    454     /* 桁数の判定 */ 
    455     // value[0] = 項目名 value[1] = 判定対象文字列 value[2] = 桁数  
    456     function NUM_COUNT_CHECK( $value ) {        // 入力文字の桁数判定 → 入力文字列 = 桁数 以外はNGの場合 
    457         if(isset($this->arrErr[$value[1]])) { 
    458             return; 
    459         } 
    460         $count = strlen($this->arrParam[$value[1]]); 
    461         if(($count > 0) && $count != $value[2] ) {   
    462             $this->arrErr[$value[1]] =  "※ $value[0]は$value[2]桁で入力して下さい。<br />"; 
    463         } 
    464     }                
    465      
    466     /* メールアドレス形式の判定 */ 
    467     // value[0] = 項目名 value[1] = 判定対象メールアドレス 
    468     function EMAIL_CHECK( $value ){             // メールアドレスを正規表現で判定する 
    469         if(isset($this->arrErr[$value[1]])) { 
    470             return; 
    471         } 
    472         if(strlen($this->arrParam[$value[1]]) > 0 && !ereg("^[^@]+@[^.]+\..+", $this->arrParam[$value[1]])) { 
    473             $this->arrErr[$value[1]] = "※ " . $value[0] . "の形式が不正です。<br />"; 
    474         } 
    475     }        
    476          
    477     /* メールアドレスに使用できる文字の判定 */ 
    478     //  value[0] = 項目名 value[1] = 判定対象メールアドレス 
    479     function EMAIL_CHAR_CHECK( $value ){                // メールアドレスに使用する文字を正規表現で判定する 
    480         if(isset($this->arrErr[$value[1]])) { 
    481             return; 
    482         } 
    483         if(strlen($this->arrParam[$value[1]]) > 0 && !ereg("^[a-zA-Z0-9_\.@\+\?-]+$",$this->arrParam[$value[1]]) ) { 
    484             $this->arrErr[$value[1]] = "※ " . $value[0] . "に使用する文字を正しく入力してください。<br />"; 
    485         } 
    486     }        
    487      
    488     /* URL形式の判定 */ 
    489     //  value[0] = 項目名 value[1] = 判定対象URL 
    490     function URL_CHECK( $value ){               // URLを正規表現で判定する。デフォルトでhttp://があってもOK 
    491         if(isset($this->arrErr[$value[1]])) { 
    492             return; 
    493         }                                        
     14    var $arrErr; 
     15    var $arrParam; 
     16 
     17    // チェック対象の値が含まれる配列をセットする。 
     18    function SC_CheckError($array = "") { 
     19        if($array != "") { 
     20            $this->arrParam = $array; 
     21        } else { 
     22            $this->arrParam = $_POST; 
     23        } 
     24 
     25    } 
     26 
     27    function doFunc($value, $arrFunc) { 
     28        foreach ( $arrFunc as $key ) { 
     29            $this->$key($value); 
     30        } 
     31    } 
     32 
     33    /* HTMLのタグをチェックする */ 
     34    // value[0] = 項目名 value[1] = 判定対象 value[2] = 許可するタグが格納された配列 
     35    function HTML_TAG_CHECK($value) { 
     36        if(isset($this->arrErr[$value[1]])) { 
     37            return; 
     38        } 
     39 
     40        // 含まれているタグを抽出する 
     41        preg_match_all("/<([\/]?[a-z]+)/", $this->arrParam[$value[1]], $arrTag); 
     42 
     43        foreach($arrTag[1] as $val) { 
     44            $find = false; 
     45 
     46            foreach($value[2] as $tag) { 
     47                if(eregi("^" . $tag . "$", $val)) { 
     48                    $find = true; 
     49                } else { 
     50                } 
     51            } 
     52 
     53            if(!$find) { 
     54                $this->arrErr[$value[1]] = "※ " . $value[0] . "に許可されていないタグ[" . strtoupper($val) . "]が含まれています。<br />"; 
     55                return; 
     56            } 
     57        } 
     58    } 
     59 
     60    /* 必須入力の判定 */ 
     61    // value[0] = 項目名 value[1] = 判定対象 
     62    function EXIST_CHECK( $value ) {            // 受け取りがない場合エラーを返す 
     63        if(isset($this->arrErr[$value[1]])) { 
     64            return; 
     65        } 
     66        if( strlen($this->arrParam[$value[1]]) == 0 ){ 
     67            $this->arrErr[$value[1]] = "※ " . $value[0] . "が入力されていません。<br />"; 
     68        } 
     69    } 
     70 
     71    /* スペース、タブの判定 */ 
     72    // value[0] = 項目名 value[1] = 判定対象 
     73    function SPTAB_CHECK( $value ) {            // 受け取りがない場合エラーを返す 
     74        if(isset($this->arrErr[$value[1]])) { 
     75            return; 
     76        } 
     77        if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
     78        if(strlen($this->arrParam[$value[1]]) != 0 && ereg("^[  \t\r\n]+$", $this->arrParam[$value[1]])){ 
     79            $this->arrErr[$value[1]] = "※ " . $value[0] . "にスペース、タブ、改行のみの入力はできません。<br />"; 
     80        } 
     81    } 
     82 
     83    /* スペース、タブの判定 */ 
     84    // value[0] = 項目名 value[1] = 判定対象 
     85    function NO_SPTAB( $value ) {           // 受け取りがない場合エラーを返す 
     86        if(isset($this->arrErr[$value[1]])) { 
     87            return; 
     88        } 
     89        if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
     90        if(strlen($this->arrParam[$value[1]]) != 0 && mb_ereg("[  \t\r\n]+", $this->arrParam[$value[1]])){ 
     91            $this->arrErr[$value[1]] = "※ " . $value[0] . "にスペース、タブ、改行は含めないで下さい。<br />"; 
     92        } 
     93    } 
     94 
     95    /* ゼロで開始されている数値の判定 */ 
     96    function ZERO_START($value) { 
     97        if(isset($this->arrErr[$value[1]])) { 
     98            return; 
     99        } 
     100        if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
     101        if(strlen($this->arrParam[$value[1]]) != 0 && ereg("^[0]+[0-9]+$", $this->arrParam[$value[1]])){ 
     102            $this->arrErr[$value[1]] = "※ " . $value[0] . "に0で始まる数値が入力されています。<br />"; 
     103        } 
     104    } 
     105 
     106    /* 必須選択の判定 */ 
     107    // value[0] = 項目名 value[1] = 判定対象 
     108    function SELECT_CHECK( $value ) {           // プルダウンなどで選択されていない場合エラーを返す 
     109        if(isset($this->arrErr[$value[1]])) { 
     110            return; 
     111        } 
     112        if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
     113        if( strlen($this->arrParam[$value[1]]) == 0 ){ 
     114            $this->arrErr[$value[1]] = "※ " . $value[0] . "が選択されていません。<br />"; 
     115        } 
     116    } 
     117 
     118    /* 同一性の判定 */ 
     119    // value[0] = 項目名1 value[1] = 項目名2 value[2] = 判定対象文字列1  value[3] = 判定対象文字列2 
     120    function EQUAL_CHECK( $value ) {        // 入力が指定文字数以上ならエラーを返す 
     121        if(isset($this->arrErr[$value[2]]) || isset($this->arrErr[$value[3]])) { 
     122            return; 
     123        } 
     124        if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
     125        // 文字数の取得 
     126        if( $this->arrParam[$value[2]] != $this->arrParam[$value[3]]) { 
     127            $this->arrErr[$value[2]] = "※ " . $value[0] . "と" . $value[1] . "が一致しません。<br />"; 
     128        } 
     129    } 
     130 
     131    /* 値が異なることの判定 */ 
     132    // value[0] = 項目名1 value[1] = 項目名2 value[2] = 判定対象文字列1  value[3] = 判定対象文字列2 
     133    function DIFFERENT_CHECK( $value ) {        // 入力が指定文字数以上ならエラーを返す 
     134        if(isset($this->arrErr[$value[2]]) || isset($this->arrErr[$value[3]])) { 
     135            return; 
     136        } 
     137        if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
     138        // 文字数の取得 
     139        if( $this->arrParam[$value[2]] == $this->arrParam[$value[3]]) { 
     140            $this->arrErr[$value[2]] = "※ " . $value[0] . "と" . $value[1] . "は、同じ値を使用できません。<br />"; 
     141        } 
     142    } 
     143 
     144    /* 値の大きさを比較する value[2] < value[3]でなければエラー */ 
     145    // value[0] = 項目名1 value[1] = 項目名2 value[2] = 判定対象文字列1  value[3] = 判定対象文字列2 
     146    function GREATER_CHECK($value) {        // 入力が指定文字数以上ならエラーを返す 
     147        if(isset($this->arrErr[$value[2]]) || isset($this->arrErr[$value[3]])) { 
     148            return; 
     149        } 
     150        if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
     151        // 文字数の取得 
     152        if($this->arrParam[$value[2]] != "" && $this->arrParam[$value[3]] != "" && ($this->arrParam[$value[2]] > $this->arrParam[$value[3]])) { 
     153            $this->arrErr[$value[2]] = "※ " . $value[0] . "は" . $value[1] . "より大きい値を入力できません。<br />"; 
     154        } 
     155    } 
     156 
     157 
     158    /* 最大文字数制限の判定 */ 
     159    // value[0] = 項目名 value[1] = 判定対象文字列  value[2] = 最大文字数(半角も全角も1文字として数える) 
     160    function MAX_LENGTH_CHECK( $value ) {       // 入力が指定文字数以上ならエラーを返す 
     161        if(isset($this->arrErr[$value[1]])) { 
     162            return; 
     163        } 
     164        if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
     165        // 文字数の取得 
     166        if( mb_strlen($this->arrParam[$value[1]]) > $value[2] ) { 
     167            $this->arrErr[$value[1]] = "※ " . $value[0] . "は" . $value[2] . "字以下で入力してください。<br />"; 
     168        } 
     169    } 
     170 
     171    /* 最小文字数制限の判定 */ 
     172    // value[0] = 項目名 value[1] = 判定対象文字列 value[2] = 最小文字数(半角も全角も1文字として数える) 
     173    function MIN_LENGTH_CHECK( $value ) {       // 入力が指定文字数未満ならエラーを返す 
     174        if(isset($this->arrErr[$value[1]])) { 
     175            return; 
     176        } 
     177        if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
     178        // 文字数の取得 
     179        if( mb_strlen($this->arrParam[$value[1]]) < $value[2] ) { 
     180            $this->arrErr[$value[1]] = "※ " . $value[0] . "は" . $value[2] . "字以上で入力してください。<br />"; 
     181        } 
     182    } 
     183 
     184    /* 最大文字数制限の判定 */ 
     185    // value[0] = 項目名 value[1] = 判定対象文字列  value[2] = 最大数 
     186    function MAX_CHECK( $value ) {      // 入力が最大数以上ならエラーを返す 
     187        if(isset($this->arrErr[$value[1]])) { 
     188            return; 
     189        } 
     190        if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
     191        // 文字数の取得 
     192        if($this->arrParam[$value[1]] > $value[2] ) { 
     193            $this->arrErr[$value[1]] = "※ " . $value[0] . "は" . $value[2] . "以下で入力してください。<br />"; 
     194        } 
     195    } 
     196 
     197    /* 最小数値制限の判定 */ 
     198    // value[0] = 項目名 value[1] = 判定対象文字列  value[2] = 最小数 
     199    function MIN_CHECK( $value ) {      // 入力が最小数未満ならエラーを返す 
     200        if(isset($this->arrErr[$value[1]])) { 
     201            return; 
     202        } 
     203        if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
     204        if($this->arrParam[$value[1]] < $value[2] ) { 
     205            $this->arrErr[$value[1]] = "※ " . $value[0] . "は" . $value[2] . "以上で入力してください。<br />"; 
     206        } 
     207    } 
     208 
     209 
     210    /* 数字の判定 */ 
     211    // value[0] = 項目名 value[1] = 判定対象文字列 
     212    function NUM_CHECK( $value ) {              // 入力文字が数字以外ならエラーを返す 
     213        if(isset($this->arrErr[$value[1]])) { 
     214            return; 
     215        } 
     216        if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
     217        if( strlen($this->arrParam[$value[1]]) > 0 && !EregI("^[[:digit:]]+$", $this->arrParam[$value[1]])) { 
     218            $this->arrErr[$value[1]] = "※ " . $value[0] . "は数字で入力してください。<br />"; 
     219        } 
     220    } 
     221 
     222        /* 小数点を含む数字の判定 */ 
     223    // value[0] = 項目名 value[1] = 判定対象文字列 
     224    function NUM_POINT_CHECK( $value ) {                // 入力文字が数字以外ならエラーを返す 
     225        if(isset($this->arrErr[$value[1]])) { 
     226            return; 
     227        } 
     228        if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
     229        if( strlen($this->arrParam[$value[1]]) > 0 && !EregI("^[[:digit:]]+[\.]?[[:digit:]]+$", $this->arrParam[$value[1]])) { 
     230            $this->arrErr[$value[1]] = "※ " . $value[0] . "は数字で入力してください。<br />"; 
     231        } 
     232    } 
     233 
     234    function ALPHA_CHECK($value) { 
     235        if(isset($this->arrErr[$value[1]])) { 
     236            return; 
     237        } 
     238        if (!isset($this->arrParam[$value[1]])) $this->arrParam[$value[1]] = ""; 
     239        if( strlen($this->arrParam[$value[1]]) > 0 && !EregI("^[[:alpha:]]+$", $this->arrParam[$value[1]])) { 
     240            $this->arrErr[$value[1]] = "※ " . $value[0] . "は半角英字で入力してください。<br />"; 
     241        } 
     242    } 
     243 
     244    /* 電話番号の判定 (数字チェックと文字数チェックを実施する。) 
     245        value[0] : 項目名 
     246        value[1] : 電番1項目目 
     247        value[2] : 電番2項目目 
     248        value[3] : 電番3項目目 
     249        value[4] : 文字数制限 
     250    */ 
     251    function TEL_CHECK($value) { 
     252        if(isset($this->arrErr[$value[1]])) { 
     253            return; 
     254        } 
     255 
     256        $cnt = 0; 
     257 
     258        for($i = 1; $i <= 3; $i++) { 
     259            if(strlen($this->arrParam[$value[$i]]) > 0) { 
     260                $cnt++; 
     261            } 
     262        } 
     263 
     264        // すべての項目が満たされていない場合を判定(一部だけ入力されている状態) 
     265        if($cnt > 0 && $cnt < 3) { 
     266            $this->arrErr[$value[1]] .= "※ " . $value[0] . "はすべての項目を入力してください。<br />"; 
     267        } 
     268 
     269        for($i = 1; $i <= 3; $i++) { 
     270            if(strlen($this->arrParam[$value[$i]]) > 0 && strlen($this->arrParam[$value[$i]]) > $value[4]) { 
     271                $this->arrErr[$value[$i]] .= "※ " . $value[0] . $i . "は" . $value[4] . "字以内で入力してください。<br />"; 
     272            } else if (strlen($this->arrParam[$value[$i]]) > 0 && !EregI("^[[:digit:]]+$", $this->arrParam[$value[$i]])) { 
     273                $this->arrErr[$value[$i]] .= "※ " . $value[0] . $i . "は数字で入力してください。<br />"; 
     274            } 
     275        } 
     276    } 
     277 
     278    /* 関連項目が完全に満たされているか判定 
     279        value[0]        : 項目名 
     280        value[1]        : 判定対象要素名 
     281    */ 
     282    function FULL_EXIST_CHECK($value) { 
     283        $max = count($value); 
     284 
     285        // 既に該当項目にエラーがある場合は、判定しない。 
     286        for($i = 1; $i < $max; $i++) { 
     287            if(isset($this->arrErr[$value[$i]])) { 
     288                return; 
     289            } 
     290        } 
     291 
     292        $blank = false; 
     293 
     294        // すべての項目がブランクでないか、すべての項目が入力されていない場合はエラーとする。 
     295        for($i = 1; $i < $max; $i++) { 
     296            if(strlen($this->arrParam[$value[$i]]) <= 0) { 
     297                $blank = true; 
     298            } 
     299        } 
     300 
     301        if($blank) { 
     302            $this->arrErr[$value[1]] = "※ " . $value[0] . "が入力されていません。<br />"; 
     303        } 
     304    } 
     305 
     306    /* 関連項目がすべて満たされているか判定 
     307        value[0]        : 項目名 
     308        value[1]        : 判定対象要素名 
     309    */ 
     310    function ALL_EXIST_CHECK($value) { 
     311        $max = count($value); 
     312 
     313        // 既に該当項目にエラーがある場合は、判定しない。 
     314        for($i = 1; $i < $max; $i++) { 
     315            if(isset($this->arrErr[$value[$i]])) { 
     316                return; 
     317            } 
     318        } 
     319 
     320        $blank = false; 
     321        $input = false; 
     322 
     323        // すべての項目がブランクでないか、すべての項目が入力されていない場合はエラーとする。 
     324        for($i = 1; $i < $max; $i++) { 
     325            if(strlen($this->arrParam[$value[$i]]) <= 0) { 
     326                $blank = true; 
     327            } else { 
     328                $input = true; 
     329            } 
     330        } 
     331 
     332        if($blank && $input) { 
     333            $this->arrErr[$value[1]] = "※ " . $value[0] . "はすべての項目を入力して下さい。<br />"; 
     334        } 
     335    } 
     336 
     337        /* 関連項目がどれか一つ満たされているか判定 
     338        value[0]        : 項目名 
     339        value[1]        : 判定対象要素名 
     340    */ 
     341    function ONE_EXIST_CHECK($value) { 
     342        $max = count($value); 
     343 
     344        // 既に該当項目にエラーがある場合は、判定しない。 
     345        for($i = 1; $i < $max; $i++) { 
     346            if(isset($this->arrErr[$value[$i]])) { 
     347                return; 
     348            } 
     349        } 
     350 
     351        $input = false; 
     352 
     353        // すべての項目がブランクでないか、すべての項目が入力されていない場合はエラーとする。 
     354        for($i = 1; $i < $max; $i++) { 
     355            if(strlen($this->arrParam[$value[$i]]) > 0) { 
     356                $input = true; 
     357            } 
     358        } 
     359 
     360        if(!$input) { 
     361            $this->arrErr[$value[1]] = "※ " . $value[0] . "が入力されていません。<br />"; 
     362        } 
     363    } 
     364 
     365    /* 上位の項目が満たされているか判定 
     366        value[0]        : 項目名 
     367        value[1]        : 判定対象要素名 
     368    */ 
     369    function TOP_EXIST_CHECK($value) { 
     370        $max = count($value); 
     371 
     372        // 既に該当項目にエラーがある場合は、判定しない。 
     373        for($i = 1; $i < $max; $i++) { 
     374            if(isset($this->arrErr[$value[$i]])) { 
     375                return; 
     376            } 
     377        } 
     378 
     379        $blank = false; 
     380        $error = false; 
     381 
     382        // すべての項目がブランクでないか、すべての項目が入力されていない場合はエラーとする。 
     383        for($i = 1; $i < $max; $i++) { 
     384            if(strlen($this->arrParam[$value[$i]]) <= 0) { 
     385                $blank = true; 
     386            } else { 
     387                if($blank) { 
     388                    $error = true; 
     389                } 
     390            } 
     391        } 
     392 
     393        if($error) { 
     394            $this->arrErr[$value[1]] = "※ " . $value[0] . "は先頭の項目から順番に入力して下さい。<br />"; 
     395        } 
     396    } 
     397 
     398 
     399    /* カタカナの判定 */ 
     400    // value[0] = 項目名 value[1] = 判定対象文字列 
     401    function KANA_CHECK( $value ) {             // 入力文字がカナ以外ならエラーを返す 
     402        if(isset($this->arrErr[$value[1]])) { 
     403            return; 
     404        } 
     405        if(strlen($this->arrParam[$value[1]]) > 0 && ! mb_ereg("^[ァ-ヶヲ-゚ー]+$", $this->arrParam[$value[1]])) { 
     406            $this->arrErr[$value[1]] = "※ " . $value[0] . "はカタカナで入力してください。<br />"; 
     407        } 
     408    } 
     409 
     410    /* カタカナの判定2(タブ、スペースは許可する) */ 
     411    // value[0] = 項目名 value[1] = 判定対象文字列 
     412    function KANABLANK_CHECK( $value ) {                // 入力文字がカナ以外ならエラーを返す 
     413        if(isset($this->arrErr[$value[1]])) { 
     414            return; 
     415        } 
     416        if(strlen($this->arrParam[$value[1]]) > 0 && ! mb_ereg("^([  \t\r\n]|[ァ-ヶ]|[ー])+$", $this->arrParam[$value[1]])) { 
     417            $this->arrErr[$value[1]] = "※ " . $value[0] . "はカタカナで入力してください。<br />"; 
     418        } 
     419    } 
     420 
     421    /* 英数字の判定 */ 
     422    // value[0] = 項目名 value[1] = 判定対象文字列 
     423    function ALNUM_CHECK( $value ) {                // 入力文字が英数字以外ならエラーを返す 
     424        if(isset($this->arrErr[$value[1]])) { 
     425            return; 
     426        } 
     427        if( strlen($this->arrParam[$value[1]]) > 0 && ! EregI("^[[:alnum:]]+$", $this->arrParam[$value[1]] ) ) { 
     428            $this->arrErr[$value[1]] = "※ " . $value[0] . "は英数字で入力してください。<br />"; 
     429        } 
     430    } 
     431 
     432    /* 必須選択の判定 */ 
     433    // value[0] = 項目名 value[1] = 判定対象 
     434    function ZERO_CHECK( $value ) {             // 入力値で0が許されない場合エラーを返す 
     435 
     436        if($this->arrParam[$value[1]] == "0" ){ 
     437            $this->arrErr[$value[1]] = "※ " . $value[0] . "は1以上を入力してください。<br />"; 
     438        } 
     439    } 
     440 
     441    /* 桁数の判定 (最小最大)*/ 
     442    // value[0] = 項目名 value[1] = 判定対象文字列 value[2] = 最小桁数 value[3] = 最大桁数 
     443    function NUM_RANGE_CHECK( $value ) {        // 入力文字の桁数判定 → 最小桁数<入力文字列<最大桁数 
     444        if(isset($this->arrErr[$value[1]])) { 
     445            return; 
     446        } 
     447        // $this->arrParam[$value[0]] = mb_convert_kana($this->arrParam[$value[0]], "n"); 
     448        $count = strlen($this->arrParam[$value[1]]); 
     449        if( ( $count > 0 ) && $value[2] > $count || $value[3] < $count ) { 
     450            $this->arrErr[$value[1]] =  "※ $value[0]は$value[2]桁〜$value[3]桁で入力して下さい。<br />"; 
     451        } 
     452    } 
     453 
     454    /* 桁数の判定 */ 
     455    // value[0] = 項目名 value[1] = 判定対象文字列 value[2] = 桁数 
     456    function NUM_COUNT_CHECK( $value ) {        // 入力文字の桁数判定 → 入力文字列 = 桁数 以外はNGの場合 
     457        if(isset($this->arrErr[$value[1]])) { 
     458            return; 
     459        } 
     460        $count = strlen($this->arrParam[$value[1]]); 
     461        if(($count > 0) && $count != $value[2] ) { 
     462            $this->arrErr[$value[1]] =  "※ $value[0]は$value[2]桁で入力して下さい。<br />"; 
     463        } 
     464    } 
     465 
     466    /* メールアドレス形式の判定 */ 
     467    // value[0] = 項目名 value[1] = 判定対象メールアドレス 
     468    function EMAIL_CHECK( $value ){             // メールアドレスを正規表現で判定する 
     469        if(isset($this->arrErr[$value[1]])) { 
     470            return; 
     471        } 
     472        if(strlen($this->arrParam[$value[1]]) > 0 && !ereg("^[^@]+@[^.]+\..+", $this->arrParam[$value[1]])) { 
     473            $this->arrErr[$value[1]] = "※ " . $value[0] . "の形式が不正です。<br />"; 
     474        } 
     475    } 
     476 
     477    /* メールアドレスに使用できる文字の判定 */ 
     478    //  value[0] = 項目名 value[1] = 判定対象メールアドレス 
     479    function EMAIL_CHAR_CHECK( $value ){                // メールアドレスに使用する文字を正規表現で判定する 
     480        if(isset($this->arrErr[$value[1]])) { 
     481            return; 
     482        } 
     483        if(strlen($this->arrParam[$value[1]]) > 0 && !ereg("^[a-zA-Z0-9_\.@\+\?-]+$",$this->arrParam[$value[1]]) ) { 
     484            $this->arrErr[$value[1]] = "※ " . $value[0] . "に使用する文字を正しく入力してください。<br />"; 
     485        } 
     486    } 
     487 
     488    /* URL形式の判定 */ 
     489    //  value[0] = 項目名 value[1] = 判定対象URL 
     490    function URL_CHECK( $value ){               // URLを正規表現で判定する。デフォルトでhttp://があってもOK 
     491         if(isset($this->arrErr[$value[1]])) { 
     492            return; 
     493        } 
    494494        if( strlen($this->arrParam[$value[1]]) > 0 && !ereg( "^https?://+($|[a-zA-Z0-9_~=&\?\.\/-])+$", $this->arrParam[$value[1]] ) ) { 
    495             $this->arrErr[$value[1]] = "※ " . $value[0] . "を正しく入力してください。<br />";      
    496         } 
    497     } 
    498          
    499     /* 拡張子の判定 */ 
    500     // value[0] = 項目名 value[1] = 判定対象 value[2]=array(拡張子)    
    501     function FILE_EXT_CHECK( $value ) {         // 受け取りがない場合エラーを返す 
    502         if(isset($this->arrErr[$value[1]]) || count($value[2]) == 0) { 
    503             return; 
    504         } 
    505          
    506         if($_FILES[$value[1]]['name'] != "" ) {                                      
    507             $errFlag = 1; 
    508             $array_ext = explode(".", $_FILES[$value[1]]['name']); 
    509             $ext = $array_ext[ count ( $array_ext ) - 1 ]; 
    510             $ext = strtolower($ext); 
    511              
    512             $strExt = ""; 
    513              
    514             foreach ( $value[2] as $checkExt ){ 
    515                 if ( $ext == $checkExt) { 
    516                     $errFlag = 0; 
    517                 } 
    518                  
    519                 if($strExt == "") { 
    520                     $strExt.= $checkExt; 
    521                 } else { 
    522                     $strExt.= "・$checkExt"; 
    523                 } 
    524             } 
    525         } 
    526         if ($errFlag == 1) { 
    527             $this->arrErr[$value[1]] = "※ " . $value[0] . "で許可されている形式は、" . $strExt . "です。<br />"; 
    528         } 
    529     } 
    530      
    531     /* ファイルが存在するかチェックする */ 
    532     // value[0] = 項目名 value[1] = 判定対象  value[2] = 指定ディレクトリ 
    533     function FIND_FILE( $value ) {          // 受け取りがない場合エラーを返す 
    534         if(isset($this->arrErr[$value[1]])) { 
    535             return; 
    536         } 
    537          
    538         if($value[2] != "") { 
    539             $dir = $value[2]; 
    540         } else { 
    541             $dir = IMAGE_SAVE_DIR; 
    542         } 
    543          
    544         $path = $dir . "/" . $this->arrParam[$value[1]]; 
    545         $path = ereg_replace("//", "/", $path); 
    546                  
    547         if($this->arrParam[$value[1]] != "" && !file_exists($path)){ 
    548             $this->arrErr[$value[1]] = "※ " . $path . "が見つかりません。<br />"; 
    549         } 
    550     } 
    551      
    552     /* ファイルが上げられたか確認 */ 
    553     // value[0] = 項目名 value[1] = 判定対象  value[2] = 指定サイズ(KB) 
    554     function FILE_EXIST_CHECK( $value ) {           // 受け取りがない場合エラーを返す 
    555         if(isset($this->arrErr[$value[1]])) { 
    556             return; 
    557         }                                            
    558         if(!($_FILES[$value[1]]['size'] != "" && $_FILES[$value[1]]['size'] > 0)){ 
    559             $this->arrErr[$value[1]] = "※ " . $value[0] . "をアップロードして下さい。<br />"; 
    560         } 
    561     } 
    562      
    563     /* ファイルサイズの判定 */ 
    564     // value[0] = 項目名 value[1] = 判定対象  value[2] = 指定サイズ(KB) 
    565     function FILE_SIZE_CHECK( $value ) {            // 受け取りがない場合エラーを返す 
    566         if(isset($this->arrErr[$value[1]])) { 
    567             return; 
    568         }                                            
    569         if( $_FILES[$value[1]]['size'] > $value[2] *  1024 ){ 
    570             $byte = "KB"; 
    571             if( $value[2] >= 1000 ) { 
    572                 $value[2] = $value[2] / 1000;  
    573                 $byte = "MB"; 
    574             } 
    575             $this->arrErr[$value[1]] = "※ " . $value[0] . "のファイルサイズは" . $value[2] . $byte . "以下のものを使用してください。<br />"; 
    576         } 
    577     } 
    578  
    579     /* ファイル名の判定 */ 
    580     // value[0] = 項目名 value[1] = 判定対象文字列 
    581     function FILE_NAME_CHECK( $value ) {                // 入力文字が英数字,"_","-"以外ならエラーを返す 
    582         if(isset($this->arrErr[$value[1]])) { 
    583             return; 
    584         } 
    585         if( strlen($_FILES[$value[1]]['name']) > 0 && ! EregI("^[[:alnum:]_\.-]+$", $_FILES[$value[1]]['name']) ) {  
    586             $this->arrErr[$value[1]] = "※ " . $value[0] . "のファイル名に日本語やスペースは使用しないで下さい。<br />";    
    587         } 
    588     } 
    589  
    590     /* ファイル名の判定(アップロード以外の時) */ 
    591     // value[0] = 項目名 value[1] = 判定対象文字列 
    592     function FILE_NAME_CHECK_BY_NOUPLOAD( $value ) {            // 入力文字が英数字,"_","-"以外ならエラーを返す 
    593         if(isset($this->arrErr[$value[1]])) { 
    594             return; 
    595         } 
    596      
    597         if( strlen($this->arrParam[$value[1]]) > 0 && ! EregI("^[[:alnum:]_\.-]+$", $this->arrParam[$value[1]]) || EregI("[\\]" ,$this->arrParam[$value[1]])) {  
    598             $this->arrErr[$value[1]] = "※ " . $value[0] . "のファイル名に日本語やスペースは使用しないで下さい。<br />";    
    599         } 
    600     } 
    601          
    602     //日付チェック 
    603     // value[0] = 項目名 
    604     // value[1] = YYYY 
    605     // value[2] = MM 
    606     // value[3] = DD 
    607     function CHECK_DATE($value) {                        
    608         if(isset($this->arrErr[$value[1]])) { 
    609             return; 
    610         }                                        
    611         // 少なくともどれか一つが入力されている。 
    612         if($this->arrParam[$value[1]] > 0 || $this->arrParam[$value[2]] > 0 || $this->arrParam[$value[3]] > 0) { 
    613             // 年月日のどれかが入力されていない。 
    614             if(!(strlen($this->arrParam[$value[1]]) > 0 && strlen($this->arrParam[$value[2]]) > 0 && strlen($this->arrParam[$value[3]]) > 0)) { 
    615                 $this->arrErr[$value[1]] = "※ " . $value[0] . "はすべての項目を入力して下さい。<br />"; 
    616             } else if ( ! checkdate($this->arrParam[$value[2]], $this->arrParam[$value[3]], $this->arrParam[$value[1]])) {                       
    617                 $this->arrErr[$value[1]] = "※ " . $value[0] . "が正しくありません。<br />"; 
    618             } 
    619         } 
    620     } 
    621      
    622     //日付チェック 
    623     // value[0] = 項目名 
    624     // value[1] = YYYY 
    625     // value[2] = MM 
    626     // value[3] = DD 
    627     // value[4] = HH 
    628     // value[5] = mm 
    629     function CHECK_DATE2($value) {                       
    630         if(isset($this->arrErr[$value[1]])) { 
    631             return; 
    632         } 
    633                                      
    634         // 少なくともどれか一つが入力されている。 
    635         if($this->arrParam[$value[1]] > 0 || $this->arrParam[$value[2]] > 0 || $this->arrParam[$value[3]] > 0 || $this->arrParam[$value[4]] >= 0 || $this->arrParam[$value[5]] >= 0) { 
    636             // 年月日時のどれかが入力されていない。 
    637             if(!(strlen($this->arrParam[$value[1]]) > 0 && strlen($this->arrParam[$value[2]]) > 0 && strlen($this->arrParam[$value[3]]) > 0 && strlen($this->arrParam[$value[4]]) > 0 && strlen($this->arrParam[$value[5]]) > 0 )) { 
    638                 $this->arrErr[$value[1]] = "※ " . $value[0] . "はすべての項目を入力して下さい。<br />"; 
    639             } else if ( ! checkdate($this->arrParam[$value[2]], $this->arrParam[$value[3]], $this->arrParam[$value[1]])) { 
    640                 $this->arrErr[$value[1]] = "※ " . $value[0] . "が正しくありません。<br />"; 
    641             } 
    642         } 
    643     } 
    644  
    645     //日付チェック 
    646     // value[0] = 項目名 
    647     // value[1] = YYYY 
    648     // value[2] = MM 
    649     function CHECK_DATE3($value) {                       
    650         if(isset($this->arrErr[$value[1]])) { 
    651             return; 
    652         } 
    653                                      
    654         // 少なくともどれか一つが入力されている。 
    655         if($this->arrParam[$value[1]] > 0 || $this->arrParam[$value[2]] > 0) { 
    656             // 年月日時のどれかが入力されていない。 
    657             if(!(strlen($this->arrParam[$value[1]]) > 0 && strlen($this->arrParam[$value[2]]) > 0)) { 
    658                 $this->arrErr[$value[1]] = "※ " . $value[0] . "はすべての項目を入力して下さい。<br />"; 
    659             } else if ( ! checkdate($this->arrParam[$value[2]], 1, $this->arrParam[$value[1]])) { 
    660                 $this->arrErr[$value[1]] = "※ " . $value[0] . "が正しくありません。<br />"; 
    661             } 
    662         } 
    663     } 
    664      
    665     /*-----------------------------------------------------------------*/ 
    666     /*  CHECK_SET_TERM 
    667     /*  年月日に別れた2つの期間の妥当性をチェックし、整合性と期間を返す 
    668     /* 引数 (開始年,開始月,開始日,終了年,終了月,終了日) 
    669     /* 戻値 array(1,2,3) 
    670     /*          1.開始年月日 (YYYYMMDD 000000) 
    671     /*          2.終了年月日 (YYYYMMDD 235959) 
    672     /*          3.エラー ( 0 = OK, 1 = NG ) 
    673     /*-----------------------------------------------------------------*/ 
    674     // value[0] = 項目名1 
    675     // value[1] = 項目名2 
    676     // value[2] = start_year 
    677     // value[3] = start_month 
    678     // value[4] = start_day 
    679     // value[5] = end_year 
    680     // value[6] = end_month 
    681     // value[7] = end_day 
    682     function CHECK_SET_TERM ($value) { 
    683  
    684         // 期間指定 
    685         if(isset($this->arrErr[$value[2]]) || isset($this->arrErr[$value[5]])) { 
    686             return; 
    687         }    
    688         $error = 0; 
    689         if ( (strlen($this->arrParam[$value[2]]) > 0 || strlen($this->arrParam[$value[3]]) > 0 || strlen($this->arrParam[$value[4]] ) > 0) && ! checkdate($this->arrParam[$value[3]], $this->arrParam[$value[4]], $this->arrParam[$value[2]]) ) { 
    690             $this->arrErr[$value[2]] = "※ " . $value[0] . "を正しく指定してください。<br />"; 
    691         } 
    692         if ( (strlen($this->arrParam[$value[5]]) > 0 || strlen($this->arrParam[$value[6]]) > 0 || strlen($this->arrParam[$value[7]] ) > 0) && ! checkdate($this->arrParam[$value[6]], $this->arrParam[$value[7]], $this->arrParam[$value[5]]) ) { 
    693             $this->arrErr[$value[5]] = "※ " . $value[1] . "を正しく指定してください。<br />"; 
    694         } 
    695         if ( (strlen($this->arrParam[$value[2]]) > 0 && strlen($this->arrParam[$value[3]]) > 0 && strlen($this->arrParam[$value[4]] ) > 0) &&  (strlen($this->arrParam[$value[5]]) > 0 || strlen($this->arrParam[$value[6]]) > 0 || strlen($this->arrParam[$value[7]] ) > 0) ){ 
    696  
    697             $date1 = $this->arrParam[$value[2]] .sprintf("%02d", $this->arrParam[$value[3]]) .sprintf("%02d",$this->arrParam[$value[4]]) ."000000"; 
    698             $date2 = $this->arrParam[$value[5]] .sprintf("%02d", $this->arrParam[$value[6]]) .sprintf("%02d",$this->arrParam[$value[7]]) ."235959"; 
    699              
    700             if (($this->arrErr[$value[2]] == "" && $this->arrErr[$value[5]] == "") && $date1 > $date2) { 
    701                 $this->arrErr[$value[2]] = "※ " .$value[0]. "と" .$value[1]. "の期間指定が不正です。<br />"; 
    702             } 
    703         } 
    704     } 
    705      
    706     /*-----------------------------------------------------------------*/ 
    707     /*  CHECK_SET_TERM2 
    708     /*  年月日時に別れた2つの期間の妥当性をチェックし、整合性と期間を返す 
    709     /* 引数 (開始年,開始月,開始日,開始時間,開始分,開始秒, 
    710     /*        終了年,終了月,終了日,終了時間,終了分,終了秒) 
    711     /* 戻値 array(1,2,3) 
    712     /*          1.開始年月日 (YYYYMMDDHHmmss) 
    713     /*          2.終了年月日 (YYYYMMDDHHmmss) 
    714     /*          3.エラー ( 0 = OK, 1 = NG ) 
    715     /*-----------------------------------------------------------------*/ 
    716     // value[0] = 項目名1 
    717     // value[1] = 項目名2 
    718     // value[2] = start_year 
    719     // value[3] = start_month 
    720     // value[4] = start_day 
    721     // value[5] = start_hour 
    722     // value[6] = start_minute 
    723     // value[7] = start_second 
    724     // value[8] = end_year 
    725     // value[9] = end_month 
    726     // value[10] = end_day 
    727     // value[11] = end_hour 
    728     // value[12] = end_minute    
    729     // value[13] = end_second 
    730      
    731     /*-----------------------------------------------------------------*/ 
    732     function CHECK_SET_TERM2 ($value) { 
    733  
    734         // 期間指定 
    735         if(isset($this->arrErr[$value[2]]) || isset($this->arrErr[$value[8]])) { 
    736             return; 
    737         }    
    738         $error = 0; 
    739         if ( (strlen($this->arrParam[$value[2]]) > 0 || strlen($this->arrParam[$value[3]]) > 0 || strlen($this->arrParam[$value[4]] ) > 0 || strlen($this->arrParam[$value[5]]) > 0) && ! checkdate($this->arrParam[$value[3]], $this->arrParam[$value[4]], $this->arrParam[$value[2]]) ) { 
    740             $this->arrErr[$value[2]] = "※ " . $value[0] . "を正しく指定してください。<br />"; 
    741         } 
    742         if ( (strlen($this->arrParam[$value[8]]) > 0 || strlen($this->arrParam[$value[9]]) > 0 || strlen($this->arrParam[$value[10]] ) > 0 || strlen($this->arrParam[$value[11]] ) > 0) && ! checkdate($this->arrParam[$value[9]], $this->arrParam[$value[10]], $this->arrParam[$value[8]]) ) { 
    743             $this->arrErr[$value[8]] = "※ " . $value[1] . "を正しく指定してください。<br />"; 
    744         } 
    745         if ( (strlen($this->arrParam[$value[2]]) > 0 && strlen($this->arrParam[$value[3]]) > 0 && strlen($this->arrParam[$value[4]] ) > 0 && strlen($this->arrParam[$value[5]] ) > 0) &&  (strlen($this->arrParam[$value[8]]) > 0 || strlen($this->arrParam[$value[9]]) > 0 || strlen($this->arrParam[$value[10]] ) > 0 || strlen($this->arrParam[$value[11]] ) > 0) ){ 
    746  
    747             $date1 = $this->arrParam[$value[2]] .sprintf("%02d", $this->arrParam[$value[3]]) .sprintf("%02d",$this->arrParam[$value[4]]) .sprintf("%02d",$this->arrParam[$value[5]]).sprintf("%02d",$this->arrParam[$value[6]]).sprintf("%02d",$this->arrParam[$value[7]]); 
    748             $date2 = $this->arrParam[$value[8]] .sprintf("%02d", $this->arrParam[$value[9]]) .sprintf("%02d",$this->arrParam[$value[10]]) .sprintf("%02d",$this->arrParam[$value[11]]).sprintf("%02d",$this->arrParam[$value[12]]).sprintf("%02d",$this->arrParam[$value[13]]); 
    749              
    750             if (($this->arrErr[$value[2]] == "" && $this->arrErr[$value[8]] == "") && $date1 > $date2) { 
    751                 $this->arrErr[$value[2]] = "※ " .$value[0]. "と" .$value[1]. "の期間指定が不正です。<br />"; 
    752             } 
    753             if($date1 == $date2) { 
    754                 $this->arrErr[$value[2]] = "※ " .$value[0]. "と" .$value[1]. "の期間指定が不正です。<br />"; 
    755             } 
    756              
    757         } 
    758     }    
    759  
    760     /*-----------------------------------------------------------------*/ 
    761     /*  CHECK_SET_TERM3 
    762     /*  年月に別れた2つの期間の妥当性をチェックし、整合性と期間を返す 
    763     /* 引数 (開始年,開始月,終了年,終了月) 
    764     /* 戻値 array(1,2,3) 
    765     /*          1.開始年月日 (YYYYMMDD 000000) 
    766     /*          2.終了年月日 (YYYYMMDD 235959) 
    767     /*          3.エラー ( 0 = OK, 1 = NG ) 
    768     /*-----------------------------------------------------------------*/ 
    769     // value[0] = 項目名1 
    770     // value[1] = 項目名2 
    771     // value[2] = start_year 
    772     // value[3] = start_month 
    773     // value[4] = end_year 
    774     // value[5] = end_month 
    775     function CHECK_SET_TERM3 ($value) { 
    776  
    777         // 期間指定 
    778         if(isset($this->arrErr[$value[2]]) || isset($this->arrErr[$value[4]])) { 
    779             return; 
    780         }    
    781         $error = 0; 
    782         if ( (strlen($this->arrParam[$value[2]]) > 0 || strlen($this->arrParam[$value[3]]) > 0) && ! checkdate($this->arrParam[$value[3]], 1, $this->arrParam[$value[2]]) ) { 
    783             $this->arrErr[$value[2]] = "※ " . $value[0] . "を正しく指定してください。<br />"; 
    784         } 
    785         if ( (strlen($this->arrParam[$value[4]]) > 0 || strlen($this->arrParam[$value[5]]) > 0) && ! checkdate($this->arrParam[$value[5]], 1, $this->arrParam[$value[4]]) ) { 
    786             $this->arrErr[$value[4]] = "※ " . $value[1] . "を正しく指定してください。<br />"; 
    787         } 
    788         if ( (strlen($this->arrParam[$value[2]]) > 0 && strlen($this->arrParam[$value[3]]) > 0 && (strlen($this->arrParam[$value[4]]) > 0 || strlen($this->arrParam[$value[5]]) > 0 ))) { 
    789  
    790             $date1 = $this->arrParam[$value[2]] .sprintf("%02d", $this->arrParam[$value[3]]); 
    791             $date2 = $this->arrParam[$value[4]] .sprintf("%02d", $this->arrParam[$value[5]]); 
    792              
    793             if (($this->arrErr[$value[2]] == "" && $this->arrErr[$value[5]] == "") && $date1 > $date2) { 
    794                 $this->arrErr[$value[2]] = "※ " .$value[0]. "と" .$value[1]. "の期間指定が不正です。<br />"; 
    795             } 
    796         } 
    797     }    
    798      
    799     //ディレクトリ存在チェック 
    800     function DIR_CHECK ($value) { 
    801         if(isset($this->arrErr[$value[1]])) { 
    802             return; 
    803         } 
    804         if(!is_dir($this->arrParam[$value[1]])) { 
    805             $this->arrErr[$value[1]] = "※ 指定した" . $value[0] . "は存在しません。<br />"; 
    806         } 
    807     } 
    808      
    809     //ディレクトリ存在チェック 
    810     function DOMAIN_CHECK ($value) { 
    811         if(isset($this->arrErr[$value[1]])) { 
    812             return; 
    813         } 
    814         if(strlen($this->arrParam[$value[1]]) > 0 && !ereg("^\.[^.]+\..+", $this->arrParam[$value[1]])) { 
    815             $this->arrErr[$value[1]] = "※ " . $value[0] . "の形式が不正です。<br />"; 
    816         } 
    817     }    
    818      
    819     /* 携帯メールアドレスの判定 */ 
    820     // value[0] = 項目名 value[1] = 判定対象メールアドレス 
    821     function MOBILE_EMAIL_CHECK( $value ){              // メールアドレスを正規表現で判定する 
    822         if(isset($this->arrErr[$value[1]])) { 
    823             return; 
    824         } 
    825         if(strlen($this->arrParam[$value[1]]) > 0 && !gfIsMobileMailAddress($this->arrParam[$value[1]])) { 
    826             $this->arrErr[$value[1]] = "※ " . $value[0] . "は携帯電話のものではありません。<br />"; 
    827         } 
    828     } 
     495            $this->arrErr[$value[1]] = "※ " . $value[0] . "を正しく入力してください。<br />"; 
     496        } 
     497    } 
     498 
     499    /* 拡張子の判定 */ 
     500    // value[0] = 項目名 value[1] = 判定対象 value[2]=array(拡張子) 
     501    function FILE_EXT_CHECK( $value ) {         // 受け取りがない場合エラーを返す 
     502        if(isset($this->arrErr[$value[1]]) || count($value[2]) == 0) { 
     503            return; 
     504        } 
     505 
     506        if($_FILES[$value[1]]['name'] != "" ) { 
     507            $errFlag = 1; 
     508            $array_ext = explode(".", $_FILES[$value[1]]['name']); 
     509            $ext = $array_ext[ count ( $array_ext ) - 1 ]; 
     510            $ext = strtolower($ext); 
     511 
     512            $strExt = ""; 
     513 
     514            foreach ( $value[2] as $checkExt ){ 
     515                if ( $ext == $checkExt) { 
     516                    $errFlag = 0; 
     517                } 
     518 
     519                if($strExt == "") { 
     520                    $strExt.= $checkExt; 
     521                } else { 
     522                    $strExt.= "・$checkExt"; 
     523                } 
     524            } 
     525        } 
     526        if ($errFlag == 1) { 
     527            $this->arrErr[$value[1]] = "※ " . $value[0] . "で許可されている形式は、" . $strExt . "です。<br />"; 
     528        } 
     529    } 
     530 
     531    /* ファイルが存在するかチェックする */ 
     532    // value[0] = 項目名 value[1] = 判定対象  value[2] = 指定ディレクトリ 
     533    function FIND_FILE( $value ) {          // 受け取りがない場合エラーを返す 
     534        if(isset($this->arrErr[$value[1]])) { 
     535            return; 
     536        } 
     537 
     538        if($value[2] != "") { 
     539            $dir = $value[2]; 
     540        } else { 
     541            $dir = IMAGE_SAVE_DIR; 
     542        } 
     543 
     544        $path = $dir . "/" . $this->arrParam[$value[1]]; 
     545        $path = ereg_replace("//", "/", $path); 
     546 
     547        if($this->arrParam[$value[1]] != "" && !file_exists($path)){ 
     548            $this->arrErr[$value[1]] = "※ " . $path . "が見つかりません。<br />"; 
     549        } 
     550    } 
     551 
     552    /* ファイルが上げられたか確認 */ 
     553    // value[0] = 項目名 value[1] = 判定対象  value[2] = 指定サイズ(KB) 
     554    function FILE_EXIST_CHECK( $value ) {           // 受け取りがない場合エラーを返す 
     555        if(isset($this->arrErr[$value[1]])) { 
     556            return; 
     557        } 
     558        if(!($_FILES[$value[1]]['size'] != "" && $_FILES[$value[1]]['size'] > 0)){ 
     559            $this->arrErr[$value[1]] = "※ " . $value[0] . "をアップロードして下さい。<br />"; 
     560        } 
     561    } 
     562 
     563    /* ファイルサイズの判定 */ 
     564    // value[0] = 項目名 value[1] = 判定対象  value[2] = 指定サイズ(KB) 
     565    function FILE_SIZE_CHECK( $value ) {            // 受け取りがない場合エラーを返す 
     566        if(isset($this->arrErr[$value[1]])) { 
     567            return; 
     568        } 
     569        if( $_FILES[$value[1]]['size'] > $value[2] *  1024 ){ 
     570            $byte = "KB"; 
     571            if( $value[2] >= 1000 ) { 
     572                $value[2] = $value[2] / 1000; 
     573                $byte = "MB"; 
     574            } 
     575            $this->arrErr[$value[1]] = "※ " . $value[0] . "のファイルサイズは" . $value[2] . $byte . "以下のものを使用してください。<br />"; 
     576        } 
     577    } 
     578 
     579    /* ファイル名の判定 */ 
     580    // value[0] = 項目名 value[1] = 判定対象文字列 
     581    function FILE_NAME_CHECK( $value ) {                // 入力文字が英数字,"_","-"以外ならエラーを返す 
     582        if(isset($this->arrErr[$value[1]])) { 
     583            return; 
     584        } 
     585        if( strlen($_FILES[$value[1]]['name']) > 0 && ! EregI("^[[:alnum:]_\.-]+$", $_FILES[$value[1]]['name']) ) { 
     586            $this->arrErr[$value[1]] = "※ " . $value[0] . "のファイル名に日本語やスペースは使用しないで下さい。<br />"; 
     587        } 
     588    } 
     589 
     590    /* ファイル名の判定(アップロード以外の時) */ 
     591    // value[0] = 項目名 value[1] = 判定対象文字列 
     592    function FILE_NAME_CHECK_BY_NOUPLOAD( $value ) {            // 入力文字が英数字,"_","-"以外ならエラーを返す 
     593        if(isset($this->arrErr[$value[1]])) { 
     594            return; 
     595        } 
     596 
     597        if( strlen($this->arrParam[$value[1]]) > 0 && ! EregI("^[[:alnum:]_\.-]+$", $this->arrParam[$value[1]]) || EregI("[\\]" ,$this->arrParam[$value[1]])) { 
     598            $this->arrErr[$value[1]] = "※ " . $value[0] . "のファイル名に日本語やスペースは使用しないで下さい。<br />"; 
     599        } 
     600    } 
     601 
     602    //日付チェック 
     603    // value[0] = 項目名 
     604    // value[1] = YYYY 
     605    // value[2] = MM 
     606    // value[3] = DD 
     607    function CHECK_DATE($value) { 
     608        if(isset($this->arrErr[$value[1]])) { 
     609            return; 
     610        } 
     611        // 少なくともどれか一つが入力されている。 
     612        if($this->arrParam[$value[1]] > 0 || $this->arrParam[$value[2]] > 0 || $this->arrParam[$value[3]] > 0) { 
     613            // 年月日のどれかが入力されていない。 
     614            if(!(strlen($this->arrParam[$value[1]]) > 0 && strlen($this->arrParam[$value[2]]) > 0 && strlen($this->arrParam[$value[3]]) > 0)) { 
     615                $this->arrErr[$value[1]] = "※ " . $value[0] . "はすべての項目を入力して下さい。<br />"; 
     616            } else if ( ! checkdate($this->arrParam[$value[2]], $this->arrParam[$value[3]], $this->arrParam[$value[1]])) { 
     617                $this->arrErr[$value[1]] = "※ " . $value[0] . "が正しくありません。<br />"; 
     618            } 
     619        } 
     620    } 
     621 
     622    //日付チェック 
     623    // value[0] = 項目名 
     624    // value[1] = YYYY 
     625    // value[2] = MM 
     626    // value[3] = DD 
     627    // value[4] = HH 
     628    // value[5] = mm 
     629    function CHECK_DATE2($value) { 
     630        if(isset($this->arrErr[$value[1]])) { 
     631            return; 
     632        } 
     633 
     634        // 少なくともどれか一つが入力されている。 
     635        if($this->arrParam[$value[1]] > 0 || $this->arrParam[$value[2]] > 0 || $this->arrParam[$value[3]] > 0 || $this->arrParam[$value[4]] >= 0 || $this->arrParam[$value[5]] >= 0) { 
     636            // 年月日時のどれかが入力されていない。 
     637            if(!(strlen($this->arrParam[$value[1]]) > 0 && strlen($this->arrParam[$value[2]]) > 0 && strlen($this->arrParam[$value[3]]) > 0 && strlen($this->arrParam[$value[4]]) > 0 && strlen($this->arrParam[$value[5]]) > 0 )) { 
     638                $this->arrErr[$value[1]] = "※ " . $value[0] . "はすべての項目を入力して下さい。<br />"; 
     639            } else if ( ! checkdate($this->arrParam[$value[2]], $this->arrParam[$value[3]], $this->arrParam[$value[1]])) { 
     640                $this->arrErr[$value[1]] = "※ " . $value[0] . "が正しくありません。<br />"; 
     641            } 
     642        } 
     643    } 
     644 
     645    //日付チェック 
     646    // value[0] = 項目名 
     647    // value[1] = YYYY 
     648    // value[2] = MM 
     649    function CHECK_DATE3($value) { 
     650        if(isset($this->arrErr[$value[1]])) { 
     651            return; 
     652        } 
     653 
     654        // 少なくともどれか一つが入力されている。 
     655        if($this->arrParam[$value[1]] > 0 || $this->arrParam[$value[2]] > 0) { 
     656            // 年月日時のどれかが入力されていない。 
     657            if(!(strlen($this->arrParam[$value[1]]) > 0 && strlen($this->arrParam[$value[2]]) > 0)) { 
     658                $this->arrErr[$value[1]] = "※ " . $value[0] . "はすべての項目を入力して下さい。<br />"; 
     659            } else if ( ! checkdate($this->arrParam[$value[2]], 1, $this->arrParam[$value[1]])) { 
     660                $this->arrErr[$value[1]] = "※ " . $value[0] . "が正しくありません。<br />"; 
     661            } 
     662        } 
     663    } 
     664 
     665    /*-----------------------------------------------------------------*/ 
     666    /*  CHECK_SET_TERM 
     667    /*  年月日に別れた2つの期間の妥当性をチェックし、整合性と期間を返す 
     668    /* 引数 (開始年,開始月,開始日,終了年,終了月,終了日) 
     669    /* 戻値 array(1,2,3) 
     670    /*          1.開始年月日 (YYYYMMDD 000000) 
     671    /*          2.終了年月日 (YYYYMMDD 235959) 
     672    /*          3.エラー ( 0 = OK, 1 = NG ) 
     673    /*-----------------------------------------------------------------*/ 
     674    // value[0] = 項目名1 
     675    // value[1] = 項目名2 
     676    // value[2] = start_year 
     677    // value[3] = start_month 
     678    // value[4] = start_day 
     679    // value[5] = end_year 
     680    // value[6] = end_month 
     681    // value[7] = end_day 
     682    function CHECK_SET_TERM ($value) { 
     683 
     684        // 期間指定 
     685        if(isset($this->arrErr[$value[2]]) || isset($this->arrErr[$value[5]])) { 
     686            return; 
     687        } 
     688        $error = 0; 
     689        if ( (strlen($this->arrParam[$value[2]]) > 0 || strlen($this->arrParam[$value[3]]) > 0 || strlen($this->arrParam[$value[4]] ) > 0) && ! checkdate($this->arrParam[$value[3]], $this->arrParam[$value[4]], $this->arrParam[$value[2]]) ) { 
     690            $this->arrErr[$value[2]] = "※ " . $value[0] . "を正しく指定してください。<br />"; 
     691        } 
     692        if ( (strlen($this->arrParam[$value[5]]) > 0 || strlen($this->arrParam[$value[6]]) > 0 || strlen($this->arrParam[$value[7]] ) > 0) && ! checkdate($this->arrParam[$value[6]], $this->arrParam[$value[7]], $this->arrParam[$value[5]]) ) { 
     693            $this->arrErr[$value[5]] = "※ " . $value[1] . "を正しく指定してください。<br />"; 
     694        } 
     695        if ( (strlen($this->arrParam[$value[2]]) > 0 && strlen($this->arrParam[$value[3]]) > 0 && strlen($this->arrParam[$value[4]] ) > 0) &&  (strlen($this->arrParam[$value[5]]) > 0 || strlen($this->arrParam[$value[6]]) > 0 || strlen($this->arrParam[$value[7]] ) > 0) ){ 
     696 
     697            $date1 = $this->arrParam[$value[2]] .sprintf("%02d", $this->arrParam[$value[3]]) .sprintf("%02d",$this->arrParam[$value[4]]) ."000000"; 
     698            $date2 = $this->arrParam[$value[5]] .sprintf("%02d", $this->arrParam[$value[6]]) .sprintf("%02d",$this->arrParam[$value[7]]) ."235959"; 
     699 
     700            if (($this->arrErr[$value[2]] == "" && $this->arrErr[$value[5]] == "") && $date1 > $date2) { 
     701                $this->arrErr[$value[2]] = "※ " .$value[0]. "と" .$value[1]. "の期間指定が不正です。<br />"; 
     702            } 
     703        } 
     704    } 
     705 
     706    /*-----------------------------------------------------------------*/ 
     707    /*  CHECK_SET_TERM2 
     708    /*  年月日時に別れた2つの期間の妥当性をチェックし、整合性と期間を返す 
     709    /* 引数 (開始年,開始月,開始日,開始時間,開始分,開始秒, 
     710    /*        終了年,終了月,終了日,終了時間,終了分,終了秒) 
     711    /* 戻値 array(1,2,3) 
     712    /*          1.開始年月日 (YYYYMMDDHHmmss) 
     713    /*          2.終了年月日 (YYYYMMDDHHmmss) 
     714    /*          3.エラー ( 0 = OK, 1 = NG ) 
     715    /*-----------------------------------------------------------------*/ 
     716    // value[0] = 項目名1 
     717    // value[1] = 項目名2 
     718    // value[2] = start_year 
     719    // value[3] = start_month 
     720    // value[4] = start_day 
     721    // value[5] = start_hour 
     722    // value[6] = start_minute 
     723    // value[7] = start_second 
     724    // value[8] = end_year 
     725    // value[9] = end_month 
     726    // value[10] = end_day 
     727    // value[11] = end_hour 
     728    // value[12] = end_minute 
     729    // value[13] = end_second 
     730 
     731    /*-----------------------------------------------------------------*/ 
     732    function CHECK_SET_TERM2 ($value) { 
     733 
     734        // 期間指定 
     735        if(isset($this->arrErr[$value[2]]) || isset($this->arrErr[$value[8]])) { 
     736            return; 
     737        } 
     738        $error = 0; 
     739        if ( (strlen($this->arrParam[$value[2]]) > 0 || strlen($this->arrParam[$value[3]]) > 0 || strlen($this->arrParam[$value[4]] ) > 0 || strlen($this->arrParam[$value[5]]) > 0) && ! checkdate($this->arrParam[$value[3]], $this->arrParam[$value[4]], $this->arrParam[$value[2]]) ) { 
     740            $this->arrErr[$value[2]] = "※ " . $value[0] . "を正しく指定してください。<br />"; 
     741        } 
     742        if ( (strlen($this->arrParam[$value[8]]) > 0 || strlen($this->arrParam[$value[9]]) > 0 || strlen($this->arrParam[$value[10]] ) > 0 || strlen($this->arrParam[$value[11]] ) > 0) && ! checkdate($this->arrParam[$value[9]], $this->arrParam[$value[10]], $this->arrParam[$value[8]]) ) { 
     743            $this->arrErr[$value[8]] = "※ " . $value[1] . "を正しく指定してください。<br />"; 
     744        } 
     745        if ( (strlen($this->arrParam[$value[2]]) > 0 && strlen($this->arrParam[$value[3]]) > 0 && strlen($this->arrParam[$value[4]] ) > 0 && strlen($this->arrParam[$value[5]] ) > 0) &&  (strlen($this->arrParam[$value[8]]) > 0 || strlen($this->arrParam[$value[9]]) > 0 || strlen($this->arrParam[$value[10]] ) > 0 || strlen($this->arrParam[$value[11]] ) > 0) ){ 
     746 
     747            $date1 = $this->arrParam[$value[2]] .sprintf("%02d", $this->arrParam[$value[3]]) .sprintf("%02d",$this->arrParam[$value[4]]) .sprintf("%02d",$this->arrParam[$value[5]]).sprintf("%02d",$this->arrParam[$value[6]]).sprintf("%02d",$this->arrParam[$value[7]]); 
     748            $date2 = $this->arrParam[$value[8]] .sprintf("%02d", $this->arrParam[$value[9]]) .sprintf("%02d",$this->arrParam[$value[10]]) .sprintf("%02d",$this->arrParam[$value[11]]).sprintf("%02d",$this->arrParam[$value[12]]).sprintf("%02d",$this->arrParam[$value[13]]); 
     749 
     750            if (($this->arrErr[$value[2]] == "" && $this->arrErr[$value[8]] == "") && $date1 > $date2) { 
     751                $this->arrErr[$value[2]] = "※ " .$value[0]. "と" .$value[1]. "の期間指定が不正です。<br />"; 
     752            } 
     753            if($date1 == $date2) { 
     754                $this->arrErr[$value[2]] = "※ " .$value[0]. "と" .$value[1]. "の期間指定が不正です。<br />"; 
     755            } 
     756 
     757        } 
     758    } 
     759 
     760    /*-----------------------------------------------------------------*/ 
     761    /*  CHECK_SET_TERM3 
     762    /*  年月に別れた2つの期間の妥当性をチェックし、整合性と期間を返す 
     763    /* 引数 (開始年,開始月,終了年,終了月) 
     764    /* 戻値 array(1,2,3) 
     765    /*          1.開始年月日 (YYYYMMDD 000000) 
     766    /*          2.終了年月日 (YYYYMMDD 235959) 
     767    /*          3.エラー ( 0 = OK, 1 = NG ) 
     768    /*-----------------------------------------------------------------*/ 
     769    // value[0] = 項目名1 
     770    // value[1] = 項目名2 
     771    // value[2] = start_year 
     772    // value[3] = start_month 
     773    // value[4] = end_year 
     774    // value[5] = end_month 
     775    function CHECK_SET_TERM3 ($value) { 
     776 
     777        // 期間指定 
     778        if(isset($this->arrErr[$value[2]]) || isset($this->arrErr[$value[4]])) { 
     779            return; 
     780        } 
     781        $error = 0; 
     782        if ( (strlen($this->arrParam[$value[2]]) > 0 || strlen($this->arrParam[$value[3]]) > 0) && ! checkdate($this->arrParam[$value[3]], 1, $this->arrParam[$value[2]]) ) { 
     783            $this->arrErr[$value[2]] = "※ " . $value[0] . "を正しく指定してください。<br />"; 
     784        } 
     785        if ( (strlen($this->arrParam[$value[4]]) > 0 || strlen($this->arrParam[$value[5]]) > 0) && ! checkdate($this->arrParam[$value[5]], 1, $this->arrParam[$value[4]]) ) { 
     786            $this->arrErr[$value[4]] = "※ " . $value[1] . "を正しく指定してください。<br />"; 
     787        } 
     788        if ( (strlen($this->arrParam[$value[2]]) > 0 && strlen($this->arrParam[$value[3]]) > 0 && (strlen($this->arrParam[$value[4]]) > 0 || strlen($this->arrParam[$value[5]]) > 0 ))) { 
     789 
     790            $date1 = $this->arrParam[$value[2]] .sprintf("%02d", $this->arrParam[$value[3]]); 
     791            $date2 = $this->arrParam[$value[4]] .sprintf("%02d", $this->arrParam[$value[5]]); 
     792 
     793            if (($this->arrErr[$value[2]] == "" && $this->arrErr[$value[5]] == "") && $date1 > $date2) { 
     794                $this->arrErr[$value[2]] = "※ " .$value[0]. "と" .$value[1]. "の期間指定が不正です。<br />"; 
     795            } 
     796        } 
     797    } 
     798 
     799    //ディレクトリ存在チェック 
     800    function DIR_CHECK ($value) { 
     801        if(isset($this->arrErr[$value[1]])) { 
     802            return; 
     803        } 
     804        if(!is_dir($this->arrParam[$value[1]])) { 
     805            $this->arrErr[$value[1]] = "※ 指定した" . $value[0] . "は存在しません。<br />"; 
     806        } 
     807    } 
     808 
     809    //ディレクトリ存在チェック 
     810    function DOMAIN_CHECK ($value) { 
     811        if(isset($this->arrErr[$value[1]])) { 
     812            return; 
     813        } 
     814        if(strlen($this->arrParam[$value[1]]) > 0 && !ereg("^\.[^.]+\..+", $this->arrParam[$value[1]])) { 
     815            $this->arrErr[$value[1]] = "※ " . $value[0] . "の形式が不正です。<br />"; 
     816        } 
     817    } 
     818 
     819    /* 携帯メールアドレスの判定 */ 
     820    // value[0] = 項目名 value[1] = 判定対象メールアドレス 
     821    function MOBILE_EMAIL_CHECK( $value ){              // メールアドレスを正規表現で判定する 
     822        if(isset($this->arrErr[$value[1]])) { 
     823            return; 
     824        } 
     825        if(strlen($this->arrParam[$value[1]]) > 0 && !gfIsMobileMailAddress($this->arrParam[$value[1]])) { 
     826            $this->arrErr[$value[1]] = "※ " . $value[0] . "は携帯電話のものではありません。<br />"; 
     827        } 
     828    } 
    829829    /** 
    830830     * 禁止文字列のチェック 
    831831     * value[0] = 項目名 value[1] = 判定対象文字列 
    832832     * value[2] = 入力を禁止する文字列(配列) 
    833      *  
     833     * 
    834834     * @example $objErr->doFunc(array("URL", "contents", $arrReviewDenyURL), array("PROHIBITED_STR_CHECK")); 
    835      */  
     835     */ 
    836836    function PROHIBITED_STR_CHECK( $value ) { 
    837837        if( isset($this->arrErr[$value[1]]) || empty($this->arrParam[$value[1]]) ) { 
    838838            return; 
    839839        } 
    840          
     840 
    841841        $targetStr     = $this->arrParam[$value[1]]; 
    842842        $prohibitedStr = str_replace(array('|', '/'), array('\|', '\/'), $value[2]); 
    843          
     843 
    844844        $pattern = '/' . join('|', $prohibitedStr) . '/i'; 
    845845        if(preg_match_all($pattern, $this->arrParam[$value[1]], $matches)) { 
Note: See TracChangeset for help on using the changeset viewer.