質問: "お問い合わせ内容を入力してください"; } ``` 分かりにくい質問で申し訳ありません。何か方法があれば教えていただけると助かります。 よろしくお願いします。
回答: ご質問のコードを踏襲しながら整理してみました。 全体を見れるならもっと詰められる部分はあると思います。 //長くなっちゃいましたね。(汗 ``` $items = array( 'name'=>'お名前', 'namekana'=>'ふりがな(お名前)', 'corp'=>'勤務先または団体名', 'corpkana'=>'ふりがな(勤務先または団体名)', 'zip'=>'郵便番号', 'pref'=>'都道府県', 'address'=>'住所', 'tel'=>'電話番号', 'fax'=>'FAX番号', 'email'=>'メールアドレス', 'contact_reason'=>'お問い合わせカテゴリ', 'message'=>'お問い合わせ内容'); $validates = array( 'name'=>'is_empty', 'namekana'=>'is_empty', 'corp'=>'is_empty', 'corpkana'=>'is_empty', 'zip'=>'is_empty,no_zip', 'pref'=>'bad_choice', 'address'=>'is_empty', 'tel'=>'tel_check', 'fax'=>'tel_check', 'email'=>'is_empty,not_mail', 'contact_reason'=>'bad_choice', 'message'=>'is_empty'); function is_empty($val, $nam) { $msg = ''; if ($val === '') { $msg = $nam . 'を入力してください'; } return $msg; } function no_zip($val, $nam) { $msg = ''; if (!preg_match("/^[0-9]+$/", $val)) { $msg = $nam . 'はハイフンなしの半角数値で入力してください。(0000000)'; } return $msg; } function bad_choice($val, $nam, $cands) { $msg = ''; if (empty($val)) { $msg = $nam . 'を選択してください'; } else if (!array_key_exists($val, $cands)) { $msg = $nam . 'の選択が正しくありません'; } return $msg; } function get_val3($data, $itm) { $item1 = $itm . '1'; $item2 = $itm . '2'; $item3 = $itm . '3'; return array($data[$item1], $data[$item2], $data[$item3]); } function tel_check($vals, $nam) { $msg = ''; $f1 = ($vals[0] === ''); $f2 = ($vals[1] === ''); $f3 = ($vals[2] === ''); if ($f1 && $f2 && $f3) { $msg = $nam . 'を入力してください'; } else if ($f1 || $f2 || $f3) { $msg = $nam . 'をすべて入力してください'; } else { foreach ($vals as $v) { if (!preg_match("/^[0-9]+$/", $v) { $msg = $nam . 'を正しく入力してください'; break; } } } return $msg; } function not_mail($val, $nam) { $msg = ''; if (!preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $val) { $msg = '正しくない' . $nam . 'の可能性があります'; } return $msg; } $err_msg = array(); foreach ($items as $key=>$item_name) { $valids = explode(',', $validates[$key]); if ($valids[0] == 'tel_check') { $msg = tel_check(get_val3($conf_data, $key), $item_name); if (!empty($msg)) $err_msg[$key] = $msg; continue; } if ($valids[0] == 'bad_choice') { $cands = ($key == 'pref') ? $prefs : $contact_reason_array; $msg = bad_choice($conf_data[$key], $item_name, $cands); if (!empty($msg)) $err_msg[$key] = $msg; continue; } foreach ($valids as $valid) { $msg = $valid($conf_data[$key], $item_name); if (!empty($msg)) { $err_msg[$key] = $msg; braek; } } } ```