getModel(); //キャリアの判定 if ($agent->isDoCoMo()) { $m_type = "docomo"; $head_default_charset = "SJIS-win"; $head_http_output = "SJIS-win"; } else if ($agent->isEZweb()) { $m_type = "ezweb"; $head_default_charset = "SJIS-win"; $head_http_output = "SJIS-win"; } else if ($agent->isSoftBank()) { $m_type = "softbank"; $head_default_charset = "SJIS-win"; $head_http_output = "SJIS-win"; } else { $m_type = "other"; $head_default_charset = "SJIS-win"; $head_http_output = "SJIS-win"; } } ini_set('output_buffering', 'On'); ini_set('output_handler', 'mb_output_handler'); ini_set('mbstring.script_encoding', 'UTF-8'); ini_set('mbstring.internal_encoding', 'UTF-8'); ini_set('mbstring.detect_order', 'UTF-8,eucJP-win,SJIS-win,jis'); ini_set('default_charset', $head_default_charset); ini_set('mbstring.http_output', $head_http_output); /********** データ処理部 **********/ //パラメータの取得 $mfdata = $_REQUEST["mfdata"]; //パラメータ情報の設定 $p_array = array(); foreach( $_REQUEST as $req_key => $req_value ) { if ( is_array($req_value) ) { $tmp_value = array(); foreach( $req_value as $ar_values ) { $tmp_value[] = mb_convert_encoding($ar_values,"UTF-8","auto"); } } else { $tmp_value = mb_convert_encoding($req_value,"UTF-8","auto"); } $p_array[$req_key] = $tmp_value; if ( $req_key != "actype" && $req_key != "mfdata" ) { if ( is_array($tmp_value) ) { foreach( $tmp_value as $ar_values ) { $hid_data .= ''."\n"; } } else { $hid_data .= ''."\n"; } } } //メールアドレス情報(確認保持用) $tmp_address = ""; //メールアドレス情報 $send_address = ""; //エラー情報 $e_array = ""; //画面毎の処理 $comboType = COMBO_NORMAL; if ( $mfdata == "input" ) { //入力値のチェック処理 foreach( $from_items as $form_key => $form_conf_array ) { //入力値 $p_value = $p_array[$form_key]; form_check($p_value,$form_conf_array); } if ( $e_array != "" ) { $mfdata = "input"; $comboType = COMBO_NORMAL; } else { $mfdata = "confirm"; $comboType = COMBO_CONFIRM; } } else if ( $mfdata == "input_back" ) { //入力画面に戻る $mfdata = "input"; $comboType = COMBO_NORMAL; } else if ( $mfdata == "confirm" ) { //確認画面の処理 //入力値のチェック処理 foreach( $from_items as $form_key => $form_conf_array ) { //入力値 $p_value = $p_array[$form_key]; form_check($p_value,$form_conf_array); } if ( $e_array != "" ) { $mfdata = "input"; $comboType = COMBO_NORMAL; } else { $mfdata = "send"; if ( TEXT_OUT_FLG == "1" ) { // //ファイル出力 // //ファイルの存在確認 $file_exists = true; if ( !file_exists(TEXT_OUT) ) { $file_exists = false; } //ファイルのオープン $fp = fopen(TEXT_OUT,'a'); //ファイルのロック(参照が可能な共有ロック) flock($fp, LOCK_SH); //ファイルに書きこみ //ファイルが存在しない場合、タイトルを出力 if ( $file_exists == false ) { $form_line = ""; $form_data = ""; foreach( $from_items as $form_key => $form_conf_array ) { if ( $form_conf_array[3] != "メールアドレス確認" ) { //入力値 $p_value = $p_array[$form_key]; $p_value = showCheckBoxs($p_value); $form_data = '"'.$form_conf_array[0].'",'; $form_line .= $form_data; } } $form_line = mb_convert_encoding($form_line,"SJIS-win","auto"); fputs($fp,$form_line."\n"); } //登録内容 $form_line = ""; $form_data = ""; foreach( $from_items as $form_key => $form_conf_array ) { if ( $form_conf_array[3] != "メールアドレス確認" ) { //入力値 $p_value = $p_array[$form_key]; $p_value = showCheckBoxs($p_value); $form_data = '"'.$p_value.'",'; $form_line .= $form_data; } } $form_line = mb_convert_encoding($form_line,"SJIS-win","auto"); fputs($fp,$form_line."\n"); //ファイルのクローズ fclose($fp); } if ( MAIL_OUT_FLG == "1" || MAIL_OUT_FLG == "2" ) { // //完了メールの送信 // //メール送信情報の設定 $toArray = array(); $tmp = explode(",",$send_address); foreach ( $tmp as $val ) { $toArray[] = array($val,""); } $toBccArray = array(); $tmp = explode(",",MAIL_ADDRESS_ADMIN); foreach ( $tmp as $val ) { $toBccArray[] = array($val,MAIL_ADDRESS_ADMIN_JPN); } //半角カナを変換 $subject = MAIL_ADDRESS_SUBJECT; $subject = mb_convert_kana($subject,"K"); //メールボディ設定 $mail_body = MAIL_ADDRESS_BODY_H."\n"; $mail_body .= "--登録内容--\n"; foreach( $from_items as $form_key => $form_conf_array ) { if ( $form_conf_array[3] != "メールアドレス確認" ) { //入力値 $p_value = $p_array[$form_key]; $p_value = showCheckBoxs($p_value); $mail_body .= $form_conf_array[0].":".$p_value."\n"; } } $mail_body .= "--ここまで--\n\n"; $mail_body .= MAIL_ADDRESS_BODY_F."\n"; //差し込み文字の置き換え while ( preg_match("/\[--(.+)--\]/",$subject,$matchArray) ) { $subject = str_replace("[--".$matchArray[1]."--]",showCheckBoxs($p_array[$matchArray[1]]),$subject); } while ( preg_match("/\[--(.+)--\]/",$mail_body,$matchArray) ) { $mail_body = str_replace("[--".$matchArray[1]."--]",showCheckBoxs($p_array[$matchArray[1]]),$mail_body); } //半角カナを変換 $mail_body = mb_convert_kana($mail_body,"K"); //メールオブジェクト生成 if ( ENCODING_MODE == "1" ) { $mail_obj = new Qdmail('UTF-8','base64'); } else { $mail_obj = new Qdmail(); } $mail_obj->setSendMode(MAIL_SEND_MODE); //メールの送信 if ( MAIL_OUT_FLG == "1" ) { //ユーザー、管理者に送信 $mail_obj->to($toArray); $mail_obj->bcc($toBccArray); } else if ( MAIL_OUT_FLG == "2" ) { //管理者のみ送信 $mail_obj->to($toBccArray); } else { die("メール送信フラグエラー".MAIL_OUT_FLG); } $mail_obj->from(MAIL_ADDRESS_FROM,MAIL_ADDRESS_FROM_JPN); $mail_obj->replyto(MAIL_ADDRESS_REPLY,MAIL_ADDRESS_REPLY_JPN); $mail_obj->subject($subject); $mail_obj->text($mail_body); $mail_obj->send(); } } } /********** 関数宣言部 **********/ //配列の展開 function showCheckBoxs($p_value) { if ( is_array($p_value) ) { return join(" ",$p_value); } else { return $p_value; } } //入力値確認 function form_check($p_value,$form_conf_array) { $form_name = $form_conf_array[0]; $form_require = $form_conf_array[1]; $form_max_size = $form_conf_array[2]; $form_check = $form_conf_array[3]; //必須チェック if ( $form_require == 1 ) { $ch = checkRequire($p_value); if ( $ch === FALSE ) { $GLOBALS["e_array"] .= $form_name."を入力してください。"."
"; } } //必須チェック(エラー付加文字なし) if ( $form_require == 2 ) { $ch = checkRequire($p_value); if ( $ch === FALSE ) { $GLOBALS["e_array"] .= $form_name."
"; } } //文字数チェック if ( !is_array($form_max_size) && $form_max_size > 0 ) { $str_count = mb_strlen($p_value); if ( $str_count > $form_max_size ) { $GLOBALS["e_array"] .= $form_name."は".$form_max_size."文字以内で入力してください。"."
"; } } //数字チェック if ( $form_check == "数字" ) { $ch = checkNumber($p_value); if ( $ch === FALSE ) { $GLOBALS["e_array"] .= $form_name."は半角数字で入力してください。"."
"; } } //英数字チェック if ( $form_check == "英数字" ) { $ch = checkAscii($p_value); if ( $ch === FALSE ) { $GLOBALS["e_array"] .= $form_name."は半角英数字で入力してください。"."
"; } } //メールアドレスチェック if ( $form_check == "メールアドレス" ) { $ch = checkMailAddress($p_value); if ( $ch === FALSE ) { $GLOBALS["e_array"] .= $form_name."は正しい形式ではありません。"."
"; } $GLOBALS["send_address"] = $p_value; //メールアドレス確認用保存 $GLOBALS["tmp_address"] = $p_value; } //メールアドレス確認チェック if ( $form_check == "メールアドレス確認" ) { if ( $ch == TRUE && $p_value != $GLOBALS["tmp_address"] ) { $GLOBALS["e_array"] .= $form_name."が正しく入力されていません。"."
"; } } } //必須チェック function checkRequire($value) { if ( is_array($value) ) { if ( count($value) == 0 ) { return FALSE; } } else { if ( strlen($value) == 0 || $value == "---" ) { return FALSE; } } return TRUE; } //数字チェック function checkNumber($value) { if ( strlen($value) == 0 ) return TRUE; if ( !is_numeric($value) ) { return FALSE; } return TRUE; } //英数字チェック function checkAscii($value) { if ( strlen($value) == 0 ) return TRUE; if ( !mb_ereg("^[a-zA-Z0-9\-_]+$",$value) ) { return FALSE; } return TRUE; } //メールアドレスチェック function checkMailAddress($value) { if ( strlen($value) == 0 ) return TRUE; if ( !mb_ereg("^[\/\-_.a-zA-Z0-9]+@[\-_.a-zA-Z0-9]+\.[-_.a-zA-Z0-9]+$",$value) ) { return FALSE; } return TRUE; } /********** 画面出力部 **********/ //画面出力 ob_start(); if ( $mfdata == "confirm" ) { //確認画面 require_once (VIEW_DIR."confirm.html"); } else if ( $mfdata == "send" ) { //送信完了画面 require_once (VIEW_DIR."send.html"); } else { //入力画面 require_once (VIEW_DIR."input.html"); } ob_end_flush(); ?>