tpl_mainpage = 'forgot/index.tpl'; $this->tpl_mainno = ''; } } $conn = new SC_DBConn(); $objPage = new LC_Page(); $objView = new SC_SiteView(); $objSess = new SC_Session(); $CONF = sf_getBasisData(); // 店舗基本情報 // クッキー管理クラス $objCookie = new SC_Cookie(COOKIE_EXPIRE); if ( $_POST['mode'] == 'mail_check' ){ //メアド入力時 $_POST['email'] = strtolower($_POST['email']); $sql = "SELECT * FROM dtb_customer WHERE email ILIKE ? AND status = 2 AND del_flg = 0"; $result = $conn->getAll($sql, array($_POST['email']) ); if ( $result[0]['reminder'] ){ // 本会員登録済みの場合 // 入力emailが存在する $_SESSION['forgot']['email'] = $_POST['email']; $_SESSION['forgot']['reminder'] = $result[0]['reminder']; // ヒミツの答え入力画面 $objPage->Reminder = $arrReminder[$_SESSION['forgot']['reminder']]; $objPage->tpl_mainpage = 'forgot/secret.tpl'; } else { $sql = "SELECT customer_id FROM dtb_customer WHERE email ILIKE ? AND status = 1 AND del_flg = 0"; //仮登録中の確認 $result = $conn->getAll($sql, array($_POST['email']) ); if ($result) { $objPage->errmsg = "ご入力のemailアドレスは現在仮登録中です。
登録の際にお送りしたメールのURLにアクセスし、
本会員登録をお願いします。"; } else { // 登録していない場合 $objPage->errmsg = "ご入力のemailアドレスは登録されていません"; } } } elseif( $_POST['mode'] == 'secret_check' ){ //ヒミツの答え入力時 if ( $_SESSION['forgot']['email'] ) { // ヒミツの答えの回答が正しいかチェック $sql = "SELECT * FROM dtb_customer WHERE email ILIKE ? AND del_flg = 0"; $result = $conn->getAll($sql, array($_SESSION['forgot']['email']) ); $data = $result[0]; if ( $data['reminder_answer'] === $_POST['input_reminder'] ){ // ヒミツの答えが正しい // 新しいパスワードを設定する $objPage->temp_password = gfMakePassword(8); if(FORGOT_MAIL == 1) { // メールで変更通知をする lfSendMail($CONF, $_SESSION['forgot']['email'], $data['name01'], $objPage->temp_password); } // DBを書き換える $sql = "UPDATE dtb_customer SET password = ?, update_date = now() WHERE customer_id = ?"; $conn->query( $sql, array( sha1($objPage->temp_password . ":" . AUTH_MAGIC) ,$data['customer_id']) ); // 完了画面の表示 $objPage->tpl_mainpage = 'forgot/complete.tpl'; // セッション変数の解放 $_SESSION['forgot'] = array(); unset($_SESSION['forgot']); } else { // ヒミツの答えが正しくない $objPage->Reminder = $arrReminder[$_SESSION['forgot']['reminder']]; $objPage->errmsg = "パスワードを忘れたときの質問に対する回答が正しくありません"; $objPage->tpl_mainpage = 'forgot/secret.tpl'; } } else { // アクセス元が不正または、セッション保持期間が切れている $objPage->errmsg = "emailアドレスを再度登録してください。
前回の入力から時間が経っていますと、本メッセージが表示される可能性があります。"; } } // デフォルト入力 if($_POST['email'] != "") { // POST値を入力 $objPage->tpl_login_email = $_POST['email']; } else { // クッキー値を入力 $objPage->tpl_login_email = $objCookie->getCookie('login_email'); } //---- ページ表示 $objView->assignobj($objPage); $objView->display($objPage->tpl_mainpage); // --------------------------------------------------------------------------------------------------------------- function lfSendMail($CONF, $email, $customer_name, $temp_password){ // パスワード変更お知らせメール送信 $objPage = new LC_Page(); $objPage->customer_name = $customer_name; $objPage->temp_password = $temp_password; $objMailText = new SC_SiteView(); $objMailText->assignobj($objPage); $toCustomerMail = $objMailText->fetch("mail_templates/forgot_mail.tpl"); $objMail = new GC_SendMail(); $objMail->setItem( '' // 宛先 , "パスワードが変更されました" ."【" .$CONF["shop_name"]. "】" // サブジェクト , $toCustomerMail // 本文 , $CONF["email03"] // 配送元アドレス , $CONF["shop_name"] // 配送元 名前 , $CONF["email03"] // reply_to , $CONF["email04"] // return_path , $CONF["email04"] // Errors_to ); $objMail->setTo($email, $customer_name ." 様"); $objMail->sendMail(); } ?>