- Timestamp:
- 2007/08/28 14:19:27 (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/feature-module-update/data/class/SC_CheckError.php
r15346 r15388 12 12 */ 13 13 class 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] = 判定対象文字列2120 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] = 判定対象文字列2133 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] = 判定対象文字列2146 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] = 判定対象URL490 function URL_CHECK( $value ){ // URLを正規表現で判定する。デフォルトでhttp://があってもOK491 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 } 494 494 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] = YYYY605 // value[2] = MM606 // value[3] = DD607 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] = YYYY625 // value[2] = MM626 // value[3] = DD627 // value[4] = HH628 // value[5] = mm629 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] = YYYY648 // value[2] = MM649 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_TERM667 /* 年月日に別れた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] = 項目名1675 // value[1] = 項目名2676 // value[2] = start_year677 // value[3] = start_month678 // value[4] = start_day679 // value[5] = end_year680 // value[6] = end_month681 // value[7] = end_day682 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_TERM2708 /* 年月日時に別れた2つの期間の妥当性をチェックし、整合性と期間を返す709 /* 引数 (開始年,開始月,開始日,開始時間,開始分,開始秒,710 /* 終了年,終了月,終了日,終了時間,終了分,終了秒)711 /* 戻値 array(1,2,3)712 /* 1.開始年月日 (YYYYMMDDHHmmss)713 /* 2.終了年月日 (YYYYMMDDHHmmss)714 /* 3.エラー ( 0 = OK, 1 = NG )715 /*-----------------------------------------------------------------*/716 // value[0] = 項目名1717 // value[1] = 項目名2718 // value[2] = start_year719 // value[3] = start_month720 // value[4] = start_day721 // value[5] = start_hour722 // value[6] = start_minute723 // value[7] = start_second724 // value[8] = end_year725 // value[9] = end_month726 // value[10] = end_day727 // value[11] = end_hour728 // value[12] = end_minute 729 // value[13] = end_second730 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_TERM3762 /* 年月に別れた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] = 項目名1770 // value[1] = 項目名2771 // value[2] = start_year772 // value[3] = start_month773 // value[4] = end_year774 // value[5] = end_month775 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 } 829 829 /** 830 830 * 禁止文字列のチェック 831 831 * value[0] = 項目名 value[1] = 判定対象文字列 832 832 * value[2] = 入力を禁止する文字列(配列) 833 * 833 * 834 834 * @example $objErr->doFunc(array("URL", "contents", $arrReviewDenyURL), array("PROHIBITED_STR_CHECK")); 835 */ 835 */ 836 836 function PROHIBITED_STR_CHECK( $value ) { 837 837 if( isset($this->arrErr[$value[1]]) || empty($this->arrParam[$value[1]]) ) { 838 838 return; 839 839 } 840 840 841 841 $targetStr = $this->arrParam[$value[1]]; 842 842 $prohibitedStr = str_replace(array('|', '/'), array('\|', '\/'), $value[2]); 843 843 844 844 $pattern = '/' . join('|', $prohibitedStr) . '/i'; 845 845 if(preg_match_all($pattern, $this->arrParam[$value[1]], $matches)) {
Note: See TracChangeset
for help on using the changeset viewer.
