getModel(); //キャリアの判定 if ($agent->isDoCoMo()) { $m_type = "docomo"; $head_default_charset = "Shift_JIS"; $head_http_output = "Shift_JIS"; } else if ($agent->isEZweb()) { $m_type = "ezweb"; $head_default_charset = "Shift_JIS"; $head_http_output = "Shift_JIS"; } else if ($agent->isSoftBank()) { $m_type = "softbank"; $head_default_charset = "UTF-8"; $head_http_output = "UTF-8"; } else { $m_type = "other"; $head_default_charset = "Shift_JIS"; $head_http_output = "Shift_JIS"; } } ini_set('output_buffering', 'On'); ini_set('output_handler', 'mb_output_handler'); ini_set('mbstring.script_encoding', 'EUC-JP'); ini_set('mbstring.internal_encoding', 'EUC-JP'); ini_set('mbstring.detect_order', 'eucJP-win,UTF-8,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,"EUC-JP",OUTPUT_CHARSET); } } else { $tmp_value = mb_convert_encoding($req_value,"EUC-JP",OUTPUT_CHARSET); } $p_array[$req_key] = $tmp_value; if ( $req_key != "mfdata" ) { if ( is_array($tmp_value) ) { foreach( $tmp_value as $ar_values ) { $hid_data .= ''."\n"; } } else { $hid_data .= ''."\n"; } } } //メールアドレス情報 $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 ) { //入力値 $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,"Shift_JIS",OUTPUT_CHARSET); fputs($fp,$form_line."\n"); } //登録内容 $form_line = ""; $form_data = ""; foreach( $from_items as $form_key => $form_conf_array ) { //入力値 $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,"Shift_JIS",OUTPUT_CHARSET); fputs($fp,$form_line."\n"); //ファイルのクローズ fclose($fp); } if ( MAIL_OUT_FLG == "1" ) { // //完了メールの送信 // //メール送信情報の設定 $to_mail_address_array = array(); $to_mail_address_array[] = $send_address; $to_mail_address_array[] = MAIL_ADDRESS_ADMIN; $to_address = $send_address; $to_address = str_replace("\r","",$to_address); //メールヘッダ設定 define("MAIL_SUBJECT_HEADER", "");// メール件名ヘッダー $mail_headers = array( "To"=>$to_address, "From"=>mb_encode_mimeheader(MAIL_ADDRESS_FROM,"ISO-2022-JP")."<".MAIL_ADDRESS_REPLY.">", "Subject"=> mb_encode_mimeheader(MAIL_SUBJECT_HEADER.MAIL_ADDRESS_SUBJECT,"ISO-2022-JP"), "Reply-To"=> MAIL_ADDRESS_REPLY, "Return-Path"=>MAIL_ADDRESS_REPLY ); //メールボディ設定 $mail_body = MAIL_ADDRESS_BODY_H."\n"; $mail_body .= "--登録内容--\n"; foreach( $from_items as $form_key => $form_conf_array ) { //入力値 $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"; //メールオブジェクト生成(SMTP) if ( MAILER_TYPE == "SMTP" ) { $mail_params = array( "host" => "localhost", "port" => 25, "auth" => false ); $mail_obj = Mail::factory("smtp",$mail_params); } //メールオブジェクト生成(SENDMAIL) if ( MAILER_TYPE == "SENDMAIL" ) { $mail_params = array( "sendmail_path" => "/usr/bin/sendmail", "sendmail_args" => "-i" ); $mail_obj = Mail::factory("sendmail",$mail_params); } //メールオブジェクト生成(MAIL) if ( MAILER_TYPE == "MAIL" ) { //メールオブジェクト生成(MAIL) $mail_obj = Mail::factory("mail"); } //メールの送信 $status = $mail_obj->send($to_mail_address_array,$mail_headers,mb_convert_encoding($mail_body,"ISO-2022-JP",OUTPUT_CHARSET)); if( PEAR::isError($status) ){ print $status->getMessage(); } } } } /********** 関数宣言部 **********/ //配列の展開 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 ( !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; } } //必須チェック 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(); ?>