Changeset 16369
- Timestamp:
- 2007/10/10 18:11:50 (16 years ago)
- Location:
- branches/feature-module-update/data
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/feature-module-update/data/Smarty/templates/default/mypage/change.tpl
r16217 r16369 82 82 </tr> 83 83 <tr> 84 <th>携帯メールアドレス</th> 85 <td> 86 <input type="text" name="email_mobile" value="<!--{$arrForm.email_mobile}-->" style="<!--{$arrErr.email_mobile|sfGetErrorColor}-->; ime-mode: disabled;" maxlength="<!--{$smarty.const.MTEXT_LEN}-->" size="40" class="box300" /><div class="attention"><!--{$arrErr.email_mobile}--></div><br /> 87 <input type="text" name="email_mobile02" value="<!--{if $arrForm.email_mobile02 == ""}--><!--{$arrForm.email_mobile}--><!--{else}--><!--{$arrForm.email_mobile02}--><!--{/if}-->" style="<!--{$arrErr.email_mobile02|sfGetErrorColor}-->; ime-mode: disabled;" maxlength="<!--{$smarty.const.MTEXT_LEN}-->" size="40" class="box300" /><div class="attention"><!--{$arrErr.email_mobile02}--></div><br /> 88 <p class="mini"><em>確認のため2度入力してください。</em></p> 89 </td> 90 </tr> 91 <tr> 84 92 <th>性別<span class="attention">※</span></th> 85 93 <td> -
branches/feature-module-update/data/Smarty/templates/default/mypage/change_confirm.tpl
r16072 r16369 52 52 </tr> 53 53 <tr> 54 <th>携帯メールアドレス</th> 55 <td> 56 <!--{if strlen($arrForm.email_mobile) > 0}--> 57 <a href="<!--{$arrForm.email_mobile|escape:'hex'}-->"><!--{$arrForm.email_mobile|escape:'hexentity'}--></a> 58 <!--{else}--> 59 未登録 60 <!--{/if}--> 61 </td> 62 </tr> 63 <tr> 54 64 <th>性別<span class="attention">※</span></th> 55 65 <td><!--{$arrSex[$arrForm.sex]}--></td> -
branches/feature-module-update/data/class/pages/mypage/LC_Page_Mypage_Change.php
r16258 r16369 17 17 */ 18 18 class LC_Page_Mypage_Change extends LC_Page { 19 19 20 20 21 // }}} … … 89 90 array( "column" => "addr02", "convert" => "aKV" ), 90 91 array( "column" => "email", "convert" => "a" ), 92 array( "column" => "email_mobile", "convert" => "a" ), 91 93 array( "column" => "tel01", "convert" => "n" ), 92 94 array( "column" => "tel02", "convert" => "n" ), … … 104 106 ); 105 107 108 //メールアドレス種別 109 $arrMailType = array("email" => true, "email_mobile" => true); 110 106 111 if (!isset($_POST['mode'])) $_POST['mode'] = ""; 107 112 … … 109 114 110 115 case 'confirm': 111 //-- 入力データの変換 112 $this->arrForm = $_POST; 113 $this->arrForm = $this->lfConvertParam($this->arrForm, $arrRegistColumn); 114 $this->arrForm['email'] = strtolower($this->arrForm['email']); // emailはすべて小文字で処理 115 116 //エラーチェック 117 $this->arrErr = $this->lfErrorCheck($this->arrForm); 118 $email_flag = true; 119 //メールアドレスを変更している場合、メールアドレスの重複チェック 120 if ($this->arrForm['email'] != $this->objCustomer->getValue('email')){ 121 $email_cnt = $this->objQuery->count("dtb_customer","del_flg=0 AND email=?", array($this->arrForm['email'])); 122 if ($email_cnt > 0){ 123 $email_flag = false; 124 } 125 } 116 126 117 //エラーなしでかつメールアドレスが重複していない場合 127 if ($this->arrErr == "" && $email_flag == true){ 118 if ($this->checkErrorTotal($arrRegistColumn, $arrMailType)) { 119 128 120 //確認ページへ 129 121 $this->tpl_mainpage = TEMPLATE_DIR . 'mypage/change_confirm.tpl'; … … 133 125 } else { 134 126 $this->lfFormReturn($this->arrForm,$this); 135 if ($email_flag == false){ 136 $this->arrErr['email'].="既に使用されているメールアドレスです。"; 137 } 138 } 139 //} 127 } 128 140 129 break; 141 130 … … 146 135 147 136 case 'complete': 148 149 //-- 入力データの変換150 $arrForm = $this->lfConvertParam($_POST, $arrRegistColumn);151 $arrForm['email'] = strtolower($arrForm['email']); // emailはすべて小文字で処理152 153 //エラーチェック154 $this->arrErr = $this->lfErrorCheck($arrForm);155 $email_flag = true;156 if($arrForm['email'] != $this->objCustomer->getValue('email')) {157 //メールアドレスの重複チェック158 $email_cnt = $this->objQuery->count("dtb_customer","del_flg=0 AND email=?", array($arrForm['email']));159 if ($email_cnt > 0){160 $email_flag = false;161 }162 }163 137 //エラーなしでかつメールアドレスが重複していない場合 164 if ($this->arrErr == "" && $email_flag) {165 $ arrForm['customer_id'] = $this->objCustomer->getValue('customer_id');138 if ($this->checkErrorTotal($arrRegistColumn, $arrMailType)) { 139 $this->arrForm['customer_id'] = $this->objCustomer->getValue('customer_id'); 166 140 //-- 編集登録 167 141 $objDb = new SC_Helper_DB_Ex(); 168 $objDb->sfEditCustomerData($ arrForm, $arrRegistColumn);142 $objDb->sfEditCustomerData($this->arrForm, $arrRegistColumn); 169 143 //セッション情報を最新の状態に更新する 170 144 $this->objCustomer->updateSession(); … … 220 194 $objDate = new SC_Date(START_BIRTH_YEAR, date("Y",strtotime("now"))); 221 195 $objQuery = new SC_Query(); 222 $objCustomer = new SC_Customer(); 196 $this->objCustomer = new SC_Customer(); 197 198 //メールアドレス種別 199 $arrMailType = array("email" => true, "email_mobile" => true); 223 200 224 201 //---- 登録用カラム配列 … … 253 230 $arrRejectRegistColumn = array("year", "month", "day", "email02", "email_mobile02", "password02"); 254 231 255 $this->arrForm = lfGetCustomerData();232 $this->arrForm = $this->lfGetCustomerData(); 256 233 $this->arrForm['password'] = DEFAULT_PASSWORD; 257 234 … … 365 342 //-- 仮登録と完了画面 366 343 if ($_POST["mode"] == "complete") { 367 344 /* 368 345 //-- 入力データの変換 369 346 $arrForm = $this->lfConvertParam($_POST, $arrRegistColumn); … … 381 358 } 382 359 } 383 360 */ 384 361 //エラーなしでかつメールアドレスが重複していない場合 385 if($this-> arrErr == "" && $email_flag) {386 $ arrForm['customer_id'] = $objCustomer->getValue('customer_id');362 if($this->checkErrorTotal($arrRegistColumn, $arrMailType, true)) { 363 $this->arrForm['customer_id'] = $this->objCustomer->getValue('customer_id'); 387 364 //-- 編集登録 388 365 $objDb->sfEditCustomerData($arrForm, $arrRegistColumn); 389 366 //セッション情報を最新の状態に更新する 390 $ objCustomer->updateSession();367 $this->objCustomer->updateSession(); 391 368 //完了ページへ 392 369 $this->sendRedirect($this->getLocation("./change_complete.php", array(session_name(), session_id()))); … … 416 393 function destroy() { 417 394 parent::destroy(); 395 } 396 397 /** 398 * すべてのエラーチェックを行う. 399 * 400 * @param array $arrRegistColumn 登録カラムの配列 401 * @param array $arrMailType メール種別とフラグを格納した配列 402 * @param bool $isMobile モバイル版登録チェックの場合 true 403 * @return bool エラーの無い場合 true 404 */ 405 function checkErrorTotal(&$arrRegistColumn, &$arrMailType, $isMobile = false) { 406 //-- 入力データの変換 407 $this->arrForm = $_POST; 408 $this->arrForm = $this->lfConvertParam($this->arrForm, $arrRegistColumn); 409 410 // emailはすべて小文字で処理 411 foreach ($arrMailType as $mailType) { 412 if (!isset($this->arrForm[$mailType])) { 413 $this->arrForm[$mailType] = ""; 414 } 415 $this->arrForm[$mailType] = strtolower($this->arrForm[$mailType]); 416 } 417 418 //エラーチェック 419 $this->arrErr = $isMobile 420 ? $this->lfErrorCheckMobile($this->arrForm) 421 : $this->lfErrorCheck($this->arrForm); 422 423 //メールアドレスを変更している場合、メールアドレスの重複チェック 424 $arrMailType2 = $arrMailType; 425 foreach ($arrMailType as $mailType => $mailTypeValue) { 426 427 if ($this->arrForm[$mailType] 428 != $this->objCustomer->getValue($mailType)){ 429 430 $email_cnt = $this->objQuery->count("dtb_customer", 431 "del_flg=0 AND " . $mailType . "= ?", 432 array($this->arrForm[$mailType])); 433 if ($email_cnt > 0){ 434 $arrMailType2[$mailTypeValue] = false; 435 $this->arrErr[$mailType] .= "既に使用されているメールアドレスです。"; 436 } 437 } 438 } 439 440 // エラーが存在せず, メールアドレスの重複が無い場合は true 441 if (empty($this->arrErr) 442 && $arrMailType2['email'] == true 443 && $arrMailType2['email_mobile'] == true) { 444 return true; 445 } else { 446 return false; 447 } 418 448 } 419 449 … … 452 482 $objErr->doFunc(array('メールアドレス(確認)', "email02", MTEXT_LEN) ,array("EXIST_CHECK", "EMAIL_CHECK","NO_SPTAB" , "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); 453 483 $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', "email", "email02") ,array("EQUAL_CHECK")); 484 $objErr->doFunc(array('携帯メールアドレス', "email_mobile", MTEXT_LEN) ,array("EXIST_CHECK", "EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK", "MOBILE_DOMAIN_CHECK")); 485 $objErr->doFunc(array('携帯メールアドレス(確認)', "email_mobile02", MTEXT_LEN) ,array("EXIST_CHECK", "EMAIL_CHECK","NO_SPTAB" , "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK", "MOBILE_DOMAIN_CHECK")); 486 $objErr->doFunc(array('携帯メールアドレス', '携帯メールアドレス(確認)', "email_mobile", "email_mobile02") ,array("EQUAL_CHECK")); 454 487 $objErr->doFunc(array("お電話番号1", 'tel01'), array("EXIST_CHECK","SPTAB_CHECK")); 455 488 $objErr->doFunc(array("お電話番号2", 'tel02'), array("EXIST_CHECK","SPTAB_CHECK")); … … 666 699 if (strlen($array["email"]) > 0) { 667 700 $objQuery = new SC_Query(); 668 $arrRet = $objQuery->select("email, update_date, del_flg", "dtb_customer","customer_id <> ? and (email ILIKE ? OR email_mobile ILIKE?) ORDER BY del_flg", array($array["customer_id"], $array["email"], $array["email"]));701 $arrRet = $objQuery->select("email, update_date, del_flg", "dtb_customer","customer_id <> ? and (email = ? OR email_mobile = ?) ORDER BY del_flg", array($array["customer_id"], $array["email"], $array["email"])); 669 702 670 703 if(count($arrRet) > 0) { … … 674 707 } else { 675 708 // 退会した会員である場合 676 $leave_time = sfDBDatetoTime($arrRet[0]['update_date']);709 $leave_time = SC_Utils_Ex::sfDBDatetoTime($arrRet[0]['update_date']); 677 710 $now_time = time(); 678 711 $pass_time = $now_time - $leave_time; … … 774 807 775 808 //メルマガフラグ取得 776 $arrForm['mailmaga_flg'] = $objQuery->get("dtb_customer","mailmaga_flg","email =?", array($objCustomer->getValue('email_mobile')));809 $arrForm['mailmaga_flg'] = $objQuery->get("dtb_customer","mailmaga_flg","email_mobile=?", array($objCustomer->getValue('email_mobile'))); 777 810 778 811 //誕生日の年月日取得
Note: See TracChangeset
for help on using the changeset viewer.