fncCheckConfirm($_REQUEST,$err) == TRUE){ //セッション開始 session_start(); //セッション登録 $CToto -> fncSetSession($_REQUEST); //確認画面表示 $CToto -> viewConfirm(); }else{ //エラー処理 //$errは配列 $CToto -> viewErr($err); } break; case "thanks": //完了処理 //セッション開始 session_start(); //セッションが有る場合 if(count($_SESSION[SESSION_KEY]) > 0){ //CSV書き出し $CToto -> fncWriteCsv(); //メール送信 $CToto -> fncMailSend($_REQUEST); //セッション破棄 $_SESSION[SESSION_KEY] = array(); //完了画面表示 $CToto -> viewThanks(); }else{ $CToto -> viewSesErr(); } break; default: //トップページ表示 $CToto -> viewTop(); break; } //クラス作成 class CToto{ //パラメータ配列 var $paramKey = array( "syurui" => "応募職種", "name" => "氏名", "email1" => "E-Mail", "email2" => "E-Mail(確認用)", "address" => "住所", "tel_no1" => "電話番号1", "tel_no2" => "電話番号2", "tel_no3" => "電話番号3", "age" => "年齢", "sex" => "性別", ); //##ビュー処理 //トップページ function viewTop(){ print $this -> fncReadTemplate("tmpl/top.html"); } //確認ページ function viewConfirm(){ print $this -> fncReplaceTemplate($_REQUEST,$this -> fncReadTemplate("tmpl/confirm.html")); } //完了ページ function viewThanks(){ print $this -> fncReadTemplate("tmpl/thanks.html"); } //セッションエラーページ function viewSesErr(){ print str_replace( "<#error>","セッションエラーです。",$this -> fncReadTemplate("tmpl/error.html")); exit(); } //エラーページ function viewErr($err){ if(count($err) > 0){ foreach($err as $val){ $tmp .= $val."
"; } } print str_replace( "<#error>",$tmp,$this -> fncReadTemplate("tmpl/error.html")); exit(); } //##プログラム的な処理 //テンプレート置換子処理 function fncReplaceTemplate($request,$tmpl){ foreach($this -> paramKey as $key => $val){ if(is_array($request[$key]) == TRUE){ $arrayTmp = ""; //初期化 foreach($request[$key] as $val){ $arrayTmp .= $val."
"; } $tmpl = str_replace("<#".$key.">",stripslashes($arrayTmp),$tmpl); }else{ $tmpl = str_replace("<#".$key.">",stripslashes(nl2br($request[$key])),$tmpl); } } return $tmpl; } function fncDataCreanCSV($str){ $str = str_replace("\"","”",$str); $str = str_replace(",",",",$str); return $str; } //メール送信 function fncMailSend($request){ // 管理者用 $tmpl = $this -> fncReadTemplate("tmpl/oomiya_cc_recruit.txt"); $tmpl = str_replace("<@@@transmit_date@@@>",date('Y-m-d'),$tmpl); $tmpl = str_replace("<@@@usr_name@@@>",$_SESSION[SESSION_KEY]['name'],$tmpl); $tmpl = str_replace("<@@@usr_sex@@@>",$_SESSION[SESSION_KEY]['sex'],$tmpl); $tmpl = str_replace("<@@@usr_age@@@>",$_SESSION[SESSION_KEY]['age'],$tmpl); $tmpl = str_replace("<@@@usr_address@@@>",$_SESSION[SESSION_KEY]['address'],$tmpl); $tmpl = str_replace("<@@@usr_tel_no@@@>",$_SESSION[SESSION_KEY]['tel_no1']."-".$_SESSION[SESSION_KEY]['tel_no2']."-".$_SESSION[SESSION_KEY]['tel_no3'],$tmpl); $tmpl = str_replace("<@@@usr_e_mail@@@>",$_SESSION[SESSION_KEY]['email1'],$tmpl); $tmpl = str_replace("<@@@syurui_lang@@@>",$_SESSION[SESSION_KEY]['syurui'],$tmpl); $admin_mail_body = i18n_convert($tmpl,"JIS","SJIS"); // ユーザー用 $tmpl = $this -> fncReadTemplate("tmpl/oomiya_cc_recruit_usr.txt"); $tmpl = str_replace("<@@@transmit_date@@@>",date('Y-m-d'),$tmpl); $tmpl = str_replace("<@@@usr_name@@@>",$_SESSION[SESSION_KEY]['name'],$tmpl); $tmpl = str_replace("<@@@usr_sex@@@>",$_SESSION[SESSION_KEY]['sex'],$tmpl); $tmpl = str_replace("<@@@usr_age@@@>",$_SESSION[SESSION_KEY]['age'],$tmpl); $tmpl = str_replace("<@@@usr_address@@@>",$_SESSION[SESSION_KEY]['address'],$tmpl); $tmpl = str_replace("<@@@usr_tel_no@@@>",$_SESSION[SESSION_KEY]['tel_no1']."-".$_SESSION[SESSION_KEY]['tel_no2']."-".$_SESSION[SESSION_KEY]['tel_no3'],$tmpl); $tmpl = str_replace("<@@@usr_e_mail@@@>",$_SESSION[SESSION_KEY]['email1'],$tmpl); $tmpl = str_replace("<@@@syurui_lang@@@>",$_SESSION[SESSION_KEY]['syurui'],$tmpl); $usr_mail_body = i18n_convert($tmpl,"JIS","SJIS"); $subject = i18n_convert("リクルート応募","JIS","SJIS"); $mail_from = "oomiya@chuoh-clinic.co.jp"; $DateStr = date("d M Y H:i:s +0900"); $Subject = "=?ISO-2022-JP?B?".base64_encode($subject)."?="; $From = "=?ISO-2022-JP?B?".base64_encode($from)."?="; $result = mail(ADMIN_MAIL,$Subject,$admin_mail_body,"Date: ".$DateStr."\nMime-Version: 1.0\nContent-Type: Text/Plain; charset=iso-2022-jp\nContent-Transfer-Encoding: 7bit\nFrom: ".$mail_from."\n","-f root@holog.jp"); if($result==false){ print("システムエラー:メールが送信できませんでした。"); exit(); } $result = mail($_SESSION[SESSION_KEY]['email1'],$Subject,$usr_mail_body,"Date: ".$DateStr."\nMime-Version: 1.0\nContent-Type: Text/Plain; charset=iso-2022-jp\nContent-Transfer-Encoding: 7bit\nFrom: ".$mail_from."\n","-f root@holog.jp"); if($result==false){ print("システムエラー:メールが送信できませんでした。"); exit(); } } //ファイル書き出し function fncWriteCsv(){ $tmp = ""; $tmp .= "\"".date('Y-m-d')."\","; $tmp .= "\"".date('H:i:s')."\","; $tmp .= "\"".$this -> fncDataCreanCSV($_SESSION[SESSION_KEY]['name'])."\","; $tmp .= "\"".$this -> fncDataCreanCSV($_SESSION[SESSION_KEY]['syurui'])."\","; $tmp .= "\"".$this -> fncDataCreanCSV($_SESSION[SESSION_KEY]['sex'])."\","; $tmp .= "\"".$this -> fncDataCreanCSV($_SESSION[SESSION_KEY]['age'])."\","; $tmp .= "\"".$this -> fncDataCreanCSV($_SESSION[SESSION_KEY]['email1'])."\","; $tmp .= "\"".$this -> fncDataCreanCSV($_SESSION[SESSION_KEY]['address'])."\","; $tmp .= "\"".$this -> fncDataCreanCSV($_SESSION[SESSION_KEY]['tel_no1'])."-".$this -> fncDataCreanCSV($_SESSION[SESSION_KEY]['tel_no2'])."-".$this -> fncDataCreanCSV($_SESSION[SESSION_KEY]['tel_no3'])."\""; //ファイル書き出し if(!file_exists(WRITE_CSV_PATH2.WRITE_CSV_NAME)){ $header="メール送信日,時刻,名前,応募職種,性別,年齢,E-Mailアドレス,住所,電話"; } $fp = fopen(WRITE_CSV_PATH2.WRITE_CSV_NAME,"a"); flock($fp,LOCK_EX); if($header!=""){ fwrite($fp,$header."\r\n"); } fwrite($fp,$tmp."\r\n"); flock($fp,LOCK_UN); fclose($fp); // print $tmp; } //セッション登録 function fncSetSession($request){ //セッション開始 session_start(); //セッション初期化 $_SESSION[SESSION_KEY] = array(); //#パラメータキーを参照してセッション登録 foreach($this -> paramKey as $key => $name){ //配列で渡される場合 if(is_array($request[$key]) == TRUE){ if(count($request[$key]) > 0){ foreach($request[$key] as $val){ $_SESSION[SESSION_KEY][$key][] = stripslashes($val); } } }else{ if($request[$key] != ""){ $_SESSION[SESSION_KEY][$key] = stripslashes($request[$key]); } } } } //テンプレート読み込み処理 function fncReadTemplate($tmpl){ $fp = @fopen($tmpl,"r"); if($fp == FALSE){ //エラー処理 $err[] = "ページが開けませんでした。"; $this -> viewErr($err); }else{ $tmp = fread($fp,filesize($tmpl)); } fclose($fp); return $tmp; } //パラメータチェック処理 function fncCheckConfirm($request,&$err){ //#空欄チェック foreach($this -> paramKey as $key => $name){ if( $key=="name" || $key=="email1" || $key=="email2" || $key=="address" || $key=="tel_no1" || $key=="tel_no2" || $key=="tel_no3" || $key=="age" || $key=="sex" || $key=="textarea" ){ //配列で渡される場合 if(is_array($request[$key]) == TRUE){ if(count($request[$key]) == 0){ $err[] = "".$name."を入力または選択してください。"; } }else{ if($request[$key] == ""){ $err[] = "".$name."を入力または選択してください。"; } } } } //適宜必要そうなチェック処理 if(!ereg("^[0-9]+$", $request["age"])){ $err[] = "年齢は半角数字で入力してください。"; } if(!eregi("^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}$",$request["email1"])){ $err[] = "メールアドレスが間違っている可能性があります。"; } if($request["email1"]!=$request["email2"]){ $err[] = "メールアドレスが一致しません。"; } if(!ereg("^[0-9]+$", $request["tel_no1"].$request["tel_no2"].$request["tel_no3"])){ $err[] = "電話番号は半角数字で入力してください。"; } if(mb_strlen($request["textarea"])>2000){ $err[] = "ご相談内容は全角1000字以内でご記入ください。"; } $err_cnt = count($err); if($err_cnt>0)return false; return true; } } ?>