template_dir = APP_TEMPLATE_DIR; #◆Smartyのテンプレートのキャッシュファイル格納先を指定 $smarty->compile_dir = APP_TEMPLATE_COMPILE_DIR; #----------------------------------------------------------------------------- # ■ smartyの読み込み #----------------------------------------------------------------------------- $Field = array(); $Item = array(); #◆ GETとPOSTの内容をマージ $_POST = array_merge($_POST, $_GET); #◆POSTされたデータをHTML表示用配列へ追加 foreach ($_POST As $Keys => $value){ if(!isset($Item[$Keys])){ $Item[$Keys] = $value; } } #◆httpsでなければエラー処理 if (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on')) { # nop } else { header(sprintf("Location: https://%s%s", $_SERVER['SERVER_NAME'], $_SERVER['SCRIPT_NAME'])); die; } $Field['Message'] = array(); #◆登録の実行 if(isset($Item['Writing'])){ switch($Item['Writing']){ case 'Execution': #◆ メールアドレスが存在しないとき、空欄とする if(!isset($Item['EMail'])){ $Item['EMail']=''; } #◆メールアドレスが空欄の場合はエラー if($Item['EMail']==''){ array_push($Field['Message'], 'メールアドレスを入力してください。'); break; } if (_CheckEMail($Item['EMail']) == 'OK') { #◆ブラウザが更新された場合はTOP画面へ戻す。 if(!isset($_SESSION['mailmag']['FlgExecution'])){ $_SESSION['mailmag']['FlgExecution']='0'; } if($_SESSION['mailmag']['FlgExecution']=='1'){ header("Location: http://www.kobac.co.jp/bin/mail_release.php"); die; } #◆メールアドレスが存在しない場合はエラーとする。 $cMagazine_EMail = new cMagazine_EMail; $rSelect = array( 'FlgDelete' => 0, 'FlgVisible' => 1, 'FlgComplet' => 1, 'EMail' => $_POST['EMail'], ); $res = $cMagazine_EMail -> Select($rSelect); $Temp = array(); if(mysql_num_rows($res)<>1){ $Temp = mysql_fetch_array($res); array_push($Field['Message'], 'メールアドレスの登録はありません。'); break; }else{ $Temp = mysql_fetch_array($res); #◆登録処理 $Field['Kai_Remote_Addr'] = ''; if(isset($_SERVER['REMOTE_ADDR'])){ $Field['Kai_Remote_Addr'] = $_SERVER['REMOTE_ADDR']; } $cMagazine_EMail2 = new cMagazine_EMail; $rSelect2 = array( 'FlgDelete' => '1', 'FlgVisible' => '0', 'Henkobi' => date("Y-m-d H:i:s"), 'Kai_TorokuDate' => date("Y-m-d H:i:s"), 'Kai_Remote_Addr' => $Field['Kai_Remote_Addr'], ); $rWhere2 = array( 'ID' => $Temp['ID'], ); $Temp2 = $cMagazine_EMail2->Update($rSelect2,$rWhere2); if(isset($Temp2['Message'])){ //Error } #◆メール送信処理 #◆件名の生成 $Subject = ''; #◆宛先の生成 $arrTo = array(); $smarty2 = new Smarty; #◆テンプレートの存在するディレクトリを指定 $smarty2->template_dir = APP_MAIL_TEMPLATE_DIR; #◆Smartyのテンプレートのキャッシュファイル格納先を指定 $smarty2->compile_dir = APP_MAIL_TEMPLATE_COMPILE_DIR; array_push($arrTo, $Temp['EMail']); #◆実稼働時は有効に //array_push($arrTo, APP_ADMIN_MAIL); #◆管理者 array_push($arrTo, 'helper01@sun-inet.or.jp'); #◆テスト $mailField = array(); #◆配列をテンプレートへ渡す $smarty2->assign('mailField',$mailField); $Body = $smarty2->fetch('Mailmag_Release.tpl'); $rSelect = array( 'arrTo' => $arrTo, 'Subject' => 'メールマガジン解除完了のお知らせ', 'Body' => $Body, ); $cMailSender = new cMailSender; $cMailSender->Sendmail($rSelect); #◆処理完了Flgを立てる。 $_SESSION['mailmag']['FlgExecution'] = '1'; #◆完了画面を表示する。 $smarty->assign("Field",$Field); $smarty->assign("Item",$Item); $smarty->display("mail_release_regist.html"); die; } }else{ array_push($Field['Message'], 'ご入力いただいたメールアドレスに誤りがございます。ご確認後、再度「解除」ボタンを押して下さい。'); } break; } } #◆セッションの初期化 $_SESSION['mailmag']['FlgExecution'] = '0'; #◆配列をテンプレートへ渡す $smarty->assign("Field",$Field); $smarty->assign("Item",$Item); #◆ページ表示 $smarty->display("mail_release.html"); #============================================================================= # ■ 共通関数など #============================================================================= #----------------------------------------------------------------------------- # ■ メールアドレスチェック #----------------------------------------------------------------------------- function _CheckEMail($EMail) { #◆ メールアドレスのチェック # xxx@xxx.xx の形式かどうか? $Confirm = 'OK'; if (preg_match('/^[^\@\s<>\\/]+\@[^\.\@\s<>\\/]+\.[^\@\s<>\\/]+$/', $EMail, $Result) > 0) { } else { $Confirm = 'BadEMailFormat'; } return $Confirm; } #----------------------------------------------------------------------------- # ■ ダイジェスト値生成 #----------------------------------------------------------------------------- function _GenerateDigest($CgiApp, $EMail) { return md5($EMail . ' ' . $CgiApp->AppData['DigestOption']); } ?>