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;
}
}
?>