Changeset 16156
- Timestamp:
- 2007/09/28 15:47:05 (16 years ago)
- Location:
- branches/feature-module-update
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/feature-module-update/data/class/pages/forgot/LC_Page_Forgot.php
r16089 r16156 50 50 function process() { 51 51 $conn = new SC_DBConn(); 52 $objView = new SC_SiteView(); 52 $objView = null; 53 54 if (MOBILE_SITE) { 55 $objView = new SC_MobileView(); 56 } else { 57 $objView = new SC_SiteView(); 58 } 59 53 60 $objSess = new SC_Session(); 54 61 … … 147 154 } 148 155 156 // モバイルサイトの場合はトークン生成 157 if (MOBILE_SITE) { 158 $this->createMobileToken(); 159 } 160 149 161 //---- ページ表示 150 162 $objView->assignobj($this); 151 163 $objView->display($this->tpl_mainpage); 164 } 165 166 /** 167 * モバイルページを初期化する. 168 * 169 * @return void 170 */ 171 function mobileInit() { 172 $this->init(); 173 } 174 175 /** 176 * Page のプロセス(モバイル). 177 * 178 * @return void 179 */ 180 function mobileProcess() { 181 $this->process(); 152 182 } 153 183 … … 194 224 $objMail->sendMail(); 195 225 } 226 227 /** 228 * モバイル空メール用のトークン作成 229 * 230 * @return void 231 */ 232 function createMobileToken() { 233 $objMobile = new SC_Helper_Mobile_Ex(); 234 // 空メール用のトークンを作成。 235 if (MOBILE_USE_KARA_MAIL) { 236 $token = $objMobile->gfPrepareKaraMail('forgot/index.php'); 237 if ($token !== false) { 238 $objPage->tpl_kara_mail_to = MOBILE_KARA_MAIL_ADDRESS_USER . MOBILE_KARA_MAIL_ADDRESS_DELIMITER . 'forgot_' . $token . '@' . MOBILE_KARA_MAIL_ADDRESS_DOMAIN; 239 } 240 } 241 } 196 242 } 197 243 ?> -
branches/feature-module-update/html/mobile/forgot/index.php
r15532 r16156 1 1 <?php 2 2 /** 3 * 3 * 4 4 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved. 5 5 * 6 6 * http://www.lockon.co.jp/ 7 * 8 * 9 * モバイルサイト/パスワード を忘れた方7 * 8 * 9 * モバイルサイト/パスワード再発行 10 10 */ 11 11 12 require_once('../require.php'); 12 // {{{ requires 13 require_once("../require.php"); 14 require_once(CLASS_PATH . "page_extends/forgot/LC_Page_Forgot_Ex.php"); 13 15 14 class LC_Page { 15 var $errmsg; 16 var $arrReminder; 17 var $temp_password; 16 // }}} 17 // {{{ generate page 18 18 19 function LC_Page() { 20 $this->tpl_mainpage = 'forgot/index.tpl'; 21 $this->tpl_title = 'パスワードを忘れた方'; 22 $this->tpl_mainno = ''; 23 } 24 } 25 26 $conn = new SC_DBConn(); 27 $objPage = new LC_Page(); 28 $objPage = sfGetPageLayout($objPage, false, DEF_LAYOUT); 29 $objView = new SC_MobileView(); 30 $objSess = new SC_Session(); 31 $CONF = sf_getBasisData(); // 店舗基本情報 32 // クッキー管理クラス 33 $objCookie = new SC_Cookie(COOKIE_EXPIRE); 34 35 if (isset($_SESSION['mobile']['kara_mail_from'])) { 36 if (!isset($_POST['mode'])) { 37 $_POST['mode'] = 'mail_check'; 38 } 39 $_POST['email'] = $_SESSION['mobile']['kara_mail_from']; 40 } 41 42 if ( $_POST['mode'] == 'mail_check' ){ 43 //メアド入力時 44 $_POST['email'] = strtolower($_POST['email']); 45 $sql = "SELECT * FROM dtb_customer WHERE (email ILIKE ? OR email_mobile ILIKE ?) AND status = 2 AND del_flg = 0"; 46 $result = $conn->getAll($sql, array($_POST['email'], $_POST['email']) ); 47 48 if ( $result[0]['reminder'] ){ // 本会員登録済みの場合 49 // 入力emailが存在する 50 $_SESSION['forgot']['email'] = $_POST['email']; 51 $_SESSION['forgot']['reminder'] = $result[0]['reminder']; 52 // ヒミツの答え入力画面 53 $objPage->Reminder = $arrReminder[$_SESSION['forgot']['reminder']]; 54 $objPage->tpl_mainpage = 'forgot/secret.tpl'; 55 } else { 56 $sql = "SELECT customer_id FROM dtb_customer WHERE email ILIKE ? AND status = 1 AND del_flg = 0"; //仮登録中の確認 57 $result = $conn->getAll($sql, array($_POST['email']) ); 58 if ($result) { 59 $objPage->errmsg = "ご入力のemailアドレスは現在仮登録中です。<br>登録の際にお送りしたメールのURLにアクセスし、<br>本会員登録をお願いします。"; 60 } else { // 登録していない場合 61 $objPage->errmsg = "ご入力のemailアドレスは登録されていません"; 62 } 63 } 64 65 } elseif( $_POST['mode'] == 'secret_check' ){ 66 //ヒミツの答え入力時 67 68 if ( $_SESSION['forgot']['email'] ) { 69 // ヒミツの答えの回答が正しいかチェック 70 71 $sql = "SELECT * FROM dtb_customer WHERE (email ILIKE ? OR email_mobile ILIKE ?) AND del_flg = 0"; 72 $result = $conn->getAll($sql, array($_SESSION['forgot']['email'], $_SESSION['forgot']['email']) ); 73 $data = $result[0]; 74 75 if ( $data['reminder_answer'] === $_POST['input_reminder'] ){ 76 // ヒミツの答えが正しい 77 78 // 新しいパスワードを設定する 79 $objPage->temp_password = gfMakePassword(8); 80 81 if(FORGOT_MAIL == 1) { 82 // メールで変更通知をする 83 lfSendMail($CONF, $_SESSION['forgot']['email'], $data['name01'], $objPage->temp_password); 84 } 85 86 // DBを書き換える 87 $sql = "UPDATE dtb_customer SET password = ?, update_date = now() WHERE customer_id = ?"; 88 $conn->query( $sql, array( sha1($objPage->temp_password . ":" . AUTH_MAGIC) ,$data['customer_id']) ); 89 90 // 完了画面の表示 91 $objPage->tpl_mainpage = 'forgot/complete.tpl'; 92 93 // セッション変数の解放 94 $_SESSION['forgot'] = array(); 95 unset($_SESSION['forgot']); 96 97 } else { 98 // ヒミツの答えが正しくない 99 100 $objPage->Reminder = $arrReminder[$_SESSION['forgot']['reminder']]; 101 $objPage->errmsg = "パスワードを忘れたときの質問に対する回答が正しくありません"; 102 $objPage->tpl_mainpage = 'forgot/secret.tpl'; 103 104 } 105 106 107 } else { 108 // アクセス元が不正または、セッション保持期間が切れている 109 $objPage->errmsg = "emailアドレスを再度登録してください。<br />前回の入力から時間が経っていますと、本メッセージが表示される可能性があります。"; 110 } 111 } 112 113 // デフォルト入力 114 if($_POST['email'] != "") { 115 // POST値を入力 116 $objPage->tpl_login_email = $_POST['email']; 117 } else { 118 // クッキー値を入力 119 $objPage->tpl_login_email = $objCookie->getCookie('login_email'); 120 } 121 122 // 空メール用のトークンを作成。 123 if (MOBILE_USE_KARA_MAIL) { 124 $token = gfPrepareKaraMail('forgot/index.php'); 125 if ($token !== false) { 126 $objPage->tpl_kara_mail_to = MOBILE_KARA_MAIL_ADDRESS_USER . MOBILE_KARA_MAIL_ADDRESS_DELIMITER . 'forgot_' . $token . '@' . MOBILE_KARA_MAIL_ADDRESS_DOMAIN; 127 } 128 } 129 130 //---- ページ表示 131 $objView->assignobj($objPage); 132 $objView->display(SITE_FRAME); 133 134 //----------------------------------------------------------------------------------------------------------------------------------- 135 136 function lfSendMail($CONF, $email, $customer_name, $temp_password){ 137 // パスワード変更お知らせメール送信 138 139 $objPage = new LC_Page(); 140 $objPage->customer_name = $customer_name; 141 $objPage->temp_password = $temp_password; 142 $objMailText = new SC_MobileView(); 143 $objMailText->assignobj($objPage); 144 145 $toCustomerMail = $objMailText->fetch("mail_templates/forgot_mail.tpl"); 146 $objMail = new GC_SendMail(); 147 148 $objMail->setItem( 149 '' // 宛先 150 , "パスワードが変更されました" ."【" .$CONF["shop_name"]. "】" // サブジェクト 151 , $toCustomerMail // 本文 152 , $CONF["email03"] // 配送元アドレス 153 , $CONF["shop_name"] // 配送元 名前 154 , $CONF["email03"] // reply_to 155 , $CONF["email04"] // return_path 156 , $CONF["email04"] // Errors_to 157 158 ); 159 $objMail->setTo($email, $customer_name ." 様"); 160 $objMail->sendMail(); 161 162 } 163 164 19 $objPage = new LC_Page_Forgot_Ex(); 20 $objPage->mobileInit(); 21 $objPage->mobileProcess(); 22 register_shutdown_function(array($objPage, "destroy")); 165 23 ?> 166
Note: See TracChangeset
for help on using the changeset viewer.