Changeset 19892
- Timestamp:
- 2011/01/12 18:29:02 (13 years ago)
- Location:
- branches/version-2_5-dev/data
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_5-dev/data/Smarty/templates/mobile/mypage/change.tpl
r19835 r19892 22 22 */ 23 23 *}--> 24 <div align="center">登録内容変更 1/3</div>24 <div align="center">登録内容変更</div> 25 25 <hr> 26 26 <form name="form1" method="post" action="?"> 27 <input type="hidden" name="mode" value="set1">28 27 <input type="hidden" name="mode" value="confirm" /> 28 <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" /> 29 29 <font color="#FF0000">*は必須項目です。</font><br> 30 PCと携帯のメールアドレスが登録できます。<br>31 30 <br> 32 31 … … 34 33 <font color="#FF0000"><!--{$arrErr.email}--></font> 35 34 <input type="text" name="email" value="<!--{$arrForm.email|h}-->" istyle="3"> 36 <br> 37 38 【携帯メールアドレス】<br> 39 <font color="#FF0000"><!--{$arrErr.email_mobile}--></font> 40 <input type="text" name="email_mobile" value="<!--{$arrForm.email_mobile|h}-->" istyle="3"> 41 <br> 35 <br> 42 36 43 37 【パスワード】<font color="#FF0000">※</font><br> … … 67 61 <font color="#FF0000"><!--{$arrErr.kana01}--><!--{$arrErr.kana02}--></font> 68 62 69 カナ/姓(例:シブヤ)< br>63 カナ/姓(例:シブヤ)<font color="#FF0000">※</font><br> 70 64 <input type="text" name="kana01" value="<!--{$arrForm.kana01|h}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" istyle="2"><br> 71 65 72 カナ/名(例:ハナコ)< br>66 カナ/名(例:ハナコ)<font color="#FF0000">※</font><br> 73 67 <input type="text" name="kana02" value="<!--{$arrForm.kana02|h}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" istyle="2"><br> 74 68 75 <input type="submit" name="confirm" value="次へ"> 69 【性別】<font color="#FF0000">*</font><br> 70 <font color="#FF0000"><!--{$arrErr.sex}--></font> 71 <input type="radio" name="sex" value="1" <!--{if $arrForm.sex eq 1}-->checked<!--{/if}--> />男性 <input type="radio" name="sex" value="2" <!--{if $arrForm.sex eq 2}-->checked<!--{/if}--> />女性<br> 72 73 【生年月日】<br> 74 <font color="#FF0000"><!--{$arrErr.year}--><!--{$arrErr.month}--><!--{$arrErr.day}--></font> 75 <input type="text" name="year" value="<!--{$arrForm.year|h}-->" size="4" maxlength="4" istyle="4">年<br> 76 <select name="month"> 77 <!--{html_options options=$arrMonth selected=$arrForm.month}--> 78 </select>月<br> 79 <select name="day"> 80 <!--{html_options options=$arrDay selected=$arrForm.day}--> 81 </select>日<br> 82 83 <!--{assign var=key1 value="zip01"}--> 84 <!--{assign var=key2 value="zip02"}--> 85 【郵便番号】<font color="#FF0000">*</font><br> 86 <font color="#FF0000"><!--{$arrErr[$key1]}--><!--{$arrErr[$key2]}--></font> 87 <!--{assign var="size1" value="`$smarty.const.ZIP01_LEN+2`"}--> 88 <!--{assign var="size2" value="`$smarty.const.ZIP02_LEN+2`"}--> 89 <input size="<!--{$size1}-->" type="text" name="zip01" value="<!--{if $arrForm.zip01 == ""}--><!--{$arrOtherDeliv.zip01|h}--><!--{else}--><!--{$arrForm.zip01|h}--><!--{/if}-->" maxlength="<!--{$smarty.const.ZIP01_LEN}-->" istyle="4"> 90 - 91 <input size="<!--{$size2}-->" type="text" name="zip02" value="<!--{if $arrForm.zip02 == ""}--><!--{$arrOtherDeliv.zip02|h}--><!--{else}--><!--{$arrForm.zip02|h}--><!--{/if}-->" maxlength="<!--{$smarty.const.ZIP02_LEN}-->" istyle="4"><br> 92 93 【都道府県】<font color="#FF0000">*</font><br> 94 <font color="#FF0000"><!--{$arrErr.pref}--></font> 95 <select name="pref"> 96 <option value="">都道府県を選択</option> 97 <!--{html_options options=$arrPref selected=$arrForm.pref}--> 98 </select><br> 99 100 【住所1】<font color="#FF0000">*</font><br> 101 <font color="#FF0000"><!--{$arrErr.addr01}--></font> 102 <input type="text" name="addr01" value="<!--{$arrForm.addr01|h}-->" istyle="1"><br> 103 104 【住所2】<font color="#FF0000">*</font><br> 105 <font color="#FF0000"><!--{$arrErr.addr02}--></font> 106 <input type="text" name="addr02" value="<!--{$arrForm.addr02|h}-->" istyle="1"><br> 107 108 【電話番号】<font color="#FF0000">*</font><br> 109 <font color="#FF0000"><!--{$arrErr.tel01}--><!--{$arrErr.tel02}--><!--{$arrErr.tel03}--></font> 110 <!--{assign var="size" value="`$smarty.const.TEL_ITEM_LEN+2`"}--> 111 <input type="text" size="<!--{$size}-->" name="tel01" value="<!--{$arrForm.tel01|h}-->" maxlength="<!--{$smarty.const.TEL_ITEM_LEN}-->" istyle="4"> 112 - 113 <input type="text" size="<!--{$size}-->" name="tel02" value="<!--{$arrForm.tel02|h}-->" maxlength="<!--{$smarty.const.TEL_ITEM_LEN}-->" istyle="4"> 114 - 115 <input type="text" size="<!--{$size}-->" name="tel03" value="<!--{$arrForm.tel03|h}-->" maxlength="<!--{$smarty.const.TEL_ITEM_LEN}-->" istyle="4"><br> 116 117 【メールマガジン】<br> 118 お得な情報を希望されますか?<br> 119 配信希望<input type="checkbox" name="mailmaga_flg" value="on" <!--{if $arrForm.mailmaga_flg eq 'on' || $arrForm.mailmaga_flg == 2}-->checked<!--{/if}--> /><br> 120 (希望されない場合はチェックをはずしてください)<br> 121 <br> 122 123 <input type="submit" name="submit" value="次へ"> 76 124 77 125 <!--{foreach from=$list_data key=key item=item}--> -
branches/version-2_5-dev/data/class/SC_CustomerList.php
r19704 r19892 45 45 46 46 if($mode == "customer") { 47 // 管理機能顧客検索の場合仮登録会員も検索48 //$this->setWhere( "(status = 1 OR status = 2) AND del_flg = 0 ");49 47 $this->setWhere( " del_flg = 0 "); 50 48 // 登録日を示すカラム -
branches/version-2_5-dev/data/class/helper/SC_Helper_Customer.php
r19881 r19892 39 39 * @param array $arrRegistColumn 登録するカラムの配列 40 40 * @return void 41 * @deprecated 42 * @todo sfEditCustomerData に統一。LC_Page_Admin_Customer_Edit から呼び出されているだけ 41 43 */ 42 function sfEditCustomerData ($array, $arrRegistColumn) {44 function sfEditCustomerDataAdmin($array, $arrRegistColumn) { 43 45 $objQuery =& SC_Query::getSingletonInstance(); 44 46 … … 61 63 if ($array["password"] != DEFAULT_PASSWORD) $arrRegist["password"] = sha1($array["password"] . ":" . AUTH_MAGIC); 62 64 $arrRegist["update_date"] = "NOW()"; 63 65 64 66 //-- 編集登録実行 65 67 $objQuery->update("dtb_customer", $arrRegist, "customer_id = ? ", array($array['customer_id'])); 66 68 } 67 69 70 /** 71 * 会員編集登録処理を行う. 72 * 73 * @param array $array 登録するデータの配列(SC_FormParamのgetDbArrayの戻り値) 74 * @param array $customer_id nullの場合はinsert, 存在する場合はupdate 75 * @access public 76 * @return integer 登録編集したユーザーのcustomer_id 77 */ 78 function sfEditCustomerData($array, $customer_id = null) { 79 $objQuery =& SC_Query::getSingletonInstance(); 80 81 $array["update_date"] = "now()"; // 更新日 82 83 //-- パスワードの更新がある場合は暗号化 84 if ($array["password"] != DEFAULT_PASSWORD){ 85 $array["password"] = sha1($array["password"] . ":" . AUTH_MAGIC); 86 } else { 87 unset($array["password"]); 88 } 89 90 //-- 編集登録実行 91 if (is_numeric($customer_id)){ 92 // 編集 93 $objQuery->update("dtb_customer", $array, "customer_id = ? ", array($customer_id)); 94 } else { 95 // 新規登録 96 97 // 会員ID 98 $customer_id = $objQuery->nextVal('dtb_customer_customer_id'); 99 if (is_null($array["customer_id"])){ 100 $array['customer_id'] = $customer_id; 101 } 102 // 作成日 103 if (is_null($array["create_date"])){ 104 $array["create_date"] = "now()"; 105 } 106 $objQuery->insert("dtb_customer", $array); 107 } 108 return $customer_id; 109 } 110 68 111 /** 69 112 * 注文番号、利用ポイント、加算ポイントから最終ポイントを取得する. … … 98 141 * 99 142 * @param string $email メールアドレス 100 * @return integer 0:登録可能 1:登録済み 2:再登録制限期間内削除ユーザー 143 * @return integer 0:登録可能 1:登録済み 2:再登録制限期間内削除ユーザー 3:自分のアドレス 101 144 */ 102 145 function lfCheckRegisterUserFromEmail($email){ 103 146 $return = 0; 104 147 148 $objCustomer = new SC_Customer(); 105 149 $objQuery =& SC_Query::getSingletonInstance(); 150 106 151 $arrRet = $objQuery->select("email, update_date, del_flg" 107 152 ,"dtb_customer" … … 128 173 } 129 174 } 175 176 // ログインしている場合、すでに登録している自分のemailの場合はエラーを返さない 177 if ($objCustomer->getValue('customer_id')){ 178 $arrRet = $objQuery->select("email, email_mobile" 179 ,"dtb_customer" 180 ,"customer_id = ? ORDER BY del_flg" 181 ,array($objCustomer->getValue('customer_id')) 182 ); 183 if ($email == $arrRet[0]["email"] 184 || $email == $arrRet[0]["email_mobile"]){ 185 $return = 3; 186 } 187 } 130 188 return $return; 131 189 } 132 133 134 135 136 190 } -
branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer_Edit.php
r19864 r19892 185 185 $this->tpl_mainpage = 'customer/edit_confirm.tpl'; 186 186 $passlen = strlen($this->arrForm['password']); 187 $this->passlen = $this->lfPassLen($passlen);187 $this->passlen = SC_Utils_Ex::lfPassLen($passlen); 188 188 189 189 } … … 202 202 } 203 203 //-- 編集登録 204 $objCustomerHelper->sfEditCustomerData ($this->arrForm, $arrRegistColumn);204 $objCustomerHelper->sfEditCustomerDataAdmin($this->arrForm, $arrRegistColumn); 205 205 } 206 206 } … … 331 331 } 332 332 333 //確認ページ用パスワード表示用334 function lfPassLen($passlen){335 $ret = "";336 for ($i=0;$i<$passlen;true){337 $ret.="*";338 $i++;339 }340 return $ret;341 }342 333 } 343 334 ?> -
branches/version-2_5-dev/data/class/pages/entry/LC_Page_Entry.php
r19881 r19892 101 101 102 102 if ($this->isMobile === false){ 103 $this->objFormParam->addParam("FAX番号1", 'fax01', "n", array("SPTAB_CHECK"));104 $this->objFormParam->addParam("FAX番号2", 'fax02', "n", array("SPTAB_CHECK"));105 $this->objFormParam->addParam("FAX番号3", 'fax03', "n", array("SPTAB_CHECK"));103 $this->objFormParam->addParam("FAX番号1", 'fax01', TEL_ITEM_LEN, "n", array("SPTAB_CHECK")); 104 $this->objFormParam->addParam("FAX番号2", 'fax02', TEL_ITEM_LEN, "n", array("SPTAB_CHECK")); 105 $this->objFormParam->addParam("FAX番号3", 'fax03', TEL_ITEM_LEN, "n", array("SPTAB_CHECK")); 106 106 $this->objFormParam->addParam("メールマガジン", "mailmaga_flg", INT_LEN, "n", array("EXIST_CHECK", "NUM_CHECK")); 107 107 $this->objFormParam->addParam("パスワード(確認)", 'password02', STEXT_LEN, "a", array("EXIST_CHECK", "SPTAB_CHECK" ,"ALNUM_CHECK"), "", false); … … 232 232 */ 233 233 $sqlval["secret_key"] = $uniqid; // 会員登録キー 234 $sqlval["create_date"] = "now()"; // 作成日235 $sqlval["update_date"] = "now()"; // 更新日236 $sqlval["first_buy_date"] = ""; // 最初の購入日237 234 $sqlval["point"] = $this->CONF["welcome_point"]; // 入会時ポイント 238 235 … … 244 241 } 245 242 246 //-- 仮登録実行243 //-- 登録実行 247 244 $objQuery->begin(); 248 $sqlval['customer_id'] = $objQuery->nextVal('dtb_customer_customer_id'); 249 $objQuery->insert("dtb_customer", $sqlval); 250 245 SC_Helper_Customer_Ex::sfEditCustomerData($sqlval); 251 246 $objQuery->commit(); 252 247 -
branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Change.php
r19832 r19892 24 24 // {{{ requires 25 25 require_once(CLASS_REALDIR . "pages/LC_Page.php"); 26 27 if (file_exists(MODULE_REALDIR . "mdl_gmopg/inc/function.php")) {28 require_once(MODULE_REALDIR . "mdl_gmopg/inc/function.php");29 }30 26 31 27 /** … … 62 58 $this->arrSex = $masterData->getMasterData("mtb_sex"); 63 59 $this->httpCacheControl('nocache'); 64 } 65 66 /** 67 * Page のプロセス. 68 * 69 * @return void 70 */ 71 function process() { 72 parent::process(); 73 $this->action(); 74 $this->sendResponse(); 75 } 76 77 /** 78 * Page のAction. 79 * 80 * @return void 81 */ 82 function action() { 83 //$objView = new SC_SiteView(); 84 $this->objQuery = new SC_Query(); 85 $this->objCustomer = new SC_Customer(); 86 $this->objFormParam = new SC_FormParam(); 87 88 // 退会判定用情報の取得 89 $objCustomer = new SC_Customer(); 90 $this->tpl_login = $objCustomer->isLoginSuccess(); 91 60 92 61 // 生年月日選択肢の取得 93 62 $objDate = new SC_Date(START_BIRTH_YEAR, date("Y",strtotime("now"))); … … 95 64 $this->arrMonth = $objDate->getMonth(true); 96 65 $this->arrDay = $objDate->getDay(true); 97 66 67 $this->isMobile = Net_UserAgent_Mobile::isMobile(); 68 } 69 70 /** 71 * Page のプロセス. 72 * 73 * @return void 74 */ 75 function process() { 76 $this->action(); 77 $this->sendResponse(); 78 } 79 80 /** 81 * Page のプロセス 82 * @return void 83 */ 84 function action() { 85 $objDb = new SC_Helper_DB_Ex(); 86 $CONF = $objDb->sfGetBasisData(); 87 88 $objQuery = new SC_Query(); 89 $objCustomer = new SC_Customer(); 90 98 91 // ログインチェック 99 if (!$ this->objCustomer->isLoginSuccess()){92 if (!$objCustomer->isLoginSuccess()){ 100 93 SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); 101 94 }else { 102 95 //マイページトップ顧客情報表示用 103 $this->CustomerName1 = $this->objCustomer->getvalue('name01'); 104 $this->CustomerName2 = $this->objCustomer->getvalue('name02'); 105 $this->CustomerPoint = $this->objCustomer->getvalue('point'); 106 } 107 108 //---- 登録用カラム配列 109 $arrRegistColumn = array( 110 array( "column" => "name01", "convert" => "aKV" ), 111 array( "column" => "name02", "convert" => "aKV" ), 112 array( "column" => "kana01", "convert" => "CKV" ), 113 array( "column" => "kana02", "convert" => "CKV" ), 114 array( "column" => "zip01", "convert" => "n" ), 115 array( "column" => "zip02", "convert" => "n" ), 116 array( "column" => "pref", "convert" => "n" ), 117 array( "column" => "addr01", "convert" => "aKV" ), 118 array( "column" => "addr02", "convert" => "aKV" ), 119 array( "column" => "email", "convert" => "a" ), 120 array( "column" => "email_mobile", "convert" => "a" ), 121 array( "column" => "tel01", "convert" => "n" ), 122 array( "column" => "tel02", "convert" => "n" ), 123 array( "column" => "tel03", "convert" => "n" ), 124 array( "column" => "fax01", "convert" => "n" ), 125 array( "column" => "fax02", "convert" => "n" ), 126 array( "column" => "fax03", "convert" => "n" ), 127 array( "column" => "sex", "convert" => "n" ), 128 array( "column" => "job", "convert" => "n" ), 129 array( "column" => "birth", "convert" => "n" ), 130 array( "column" => "password", "convert" => "an" ), 131 array( "column" => "reminder", "convert" => "n" ), 132 array( "column" => "reminder_answer", "convert" => "aKV" ), 133 array( "column" => "mailmaga_flg", "convert" => "n" ) 134 ); 135 136 //メールアドレス種別 137 $arrMailType = array("email" => true, "email_mobile" => true); 138 139 if (!isset($_POST['mode'])) $_POST['mode'] = ""; 140 141 switch ($_POST['mode']){ 142 143 case 'confirm': 144 145 //エラーなしでかつメールアドレスが重複していない場合 146 if ($this->checkErrorTotal($arrRegistColumn, $arrMailType)) { 147 148 //確認ページへ 149 $this->tpl_mainpage = TEMPLATE_REALDIR . 'mypage/change_confirm.tpl'; 150 $this->tpl_subtitle = '会員登録内容変更(確認ページ)'; 151 $passlen = strlen($this->arrForm['password']); 152 $this->passlen = $this->lfPassLen($passlen); 153 } else { 154 $this->lfFormReturn($this->arrForm,$this); 96 $this->CustomerName1 = $objCustomer->getvalue('name01'); 97 $this->CustomerName2 = $objCustomer->getvalue('name02'); 98 $this->CustomerPoint = $objCustomer->getvalue('point'); 99 } 100 101 // mobile用(戻るボタンでの遷移かどうかを判定) 102 if (!empty($_POST["return"])) { 103 $_POST["mode"] = "return"; 104 } 105 106 // パラメータ管理クラス,パラメータ情報の初期化 107 $this->objFormParam = new SC_FormParam(); 108 $this->lfInitParam(); 109 $this->objFormParam->setParam($_POST); // POST値の取得 110 111 112 if ($_SERVER["REQUEST_METHOD"] == "POST") { 113 114 //CSRF対策 115 /* 116 if (!SC_Helper_Session_Ex::isValidToken()) { 117 SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, "", true); 155 118 } 156 157 break; 158 159 case 'return': 160 $this->arrForm = $_POST; 161 $this->lfFormReturn($this->arrForm,$this); 162 break; 163 164 case 'gmo_oneclick': 165 sfGMOMypageEdit(); 119 */ 120 121 $this->objFormParam->convParam(); 122 $this->objFormParam->toLower('email'); 123 $this->objFormParam->toLower('email02'); 124 $this->objFormParam->toLower('email_mobile'); 125 $this->objFormParam->toLower('email_mobile02'); 126 $this->arrForm = $this->objFormParam->getHashArray(); 127 128 //-- 確認 129 if ($_POST["mode"] == "confirm") { 130 131 $this->arrErr = $this->lfErrorCheck(); 132 133 // 入力エラーなし 134 if(count($this->arrErr) == 0) { 135 136 $this->list_data = $this->objFormParam->getHashArray(); 137 138 //パスワード表示 139 $passlen = strlen($this->arrForm['password']); 140 $this->passlen = SC_Utils_Ex::lfPassLen($passlen); 141 142 $this->tpl_mainpage = 'mypage/change_confirm.tpl'; 143 $this->tpl_title = '会員登録(確認ページ)'; 144 } 145 146 } elseif ($_POST["mode"] == "complete") { 147 //-- 会員登録と完了画面 148 149 // 会員情報の登録 150 $this->CONF = $CONF; 151 $this->lfRegistData(); 152 153 // 完了ページに移動させる。 154 SC_Response_Ex::sendRedirect('change_complete.php'); 155 exit; 156 157 } 158 } else { 166 159 $this->arrForm = $this->lfGetCustomerData(); 167 160 $this->arrForm['password'] = DEFAULT_PASSWORD; 168 161 $this->arrForm['password02'] = DEFAULT_PASSWORD; 169 break; 170 case 'complete': 171 //エラーなしでかつメールアドレスが重複していない場合 172 if ($this->checkErrorTotal($arrRegistColumn, $arrMailType)) { 173 $this->arrForm['customer_id'] = $this->objCustomer->getValue('customer_id'); 174 //-- 編集登録 175 $objDb = new SC_Helper_DB_Ex(); 176 $objDb->sfEditCustomerData($this->arrForm, $arrRegistColumn); 177 //セッション情報を最新の状態に更新する 178 $this->objCustomer->updateSession(); 179 180 // Do楽SNS連携モジュールユーザ情報更新処理 181 if (function_exists('sfUpdateSourakuSNSUserInfo')) { 182 sfUpdateSourakuSNSUserInfo(); 183 } 184 185 //完了ページへ 186 SC_Response_Ex::sendRedirect('change_complete.php'); 187 exit; 188 } else { 189 SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); 190 } 191 break; 192 193 default: 194 //顧客情報取得 195 $this->arrForm = $this->lfGetCustomerData(); 196 $this->arrForm['password'] = DEFAULT_PASSWORD; 197 $this->arrForm['password02'] = DEFAULT_PASSWORD; 198 break; 199 } 200 201 //誕生日データ登録の有無 202 $arrCustomer = $this->lfGetCustomerData(); 203 if ($arrCustomer['birth'] != ""){ 204 $this->birth_check = true; 205 } 206 207 //$objView->assignobj($this); //$objpage内の全てのテンプレート変数をsmartyに格納 208 //$objView->display(SITE_FRAME); //パスとテンプレート変数の呼び出し、実行 209 210 211 } 212 213 /** 214 * モバイルページを初期化する. 215 * 216 * @return void 217 */ 218 function mobileInit() { 219 $this->init(); 220 $this->tpl_mainpage = 'mypage/change.tpl'; // メインテンプレート 221 $this->tpl_title .= '登録変更(1/3)'; // ページタイトル 222 223 $masterData = new SC_DB_MasterData_Ex(); 224 $this->arrReminder = $masterData->getMasterData("mtb_reminder"); 225 $this->arrPref = $masterData->getMasterData('mtb_pref'); 226 $this->arrJob = $masterData->getMasterData("mtb_job"); 227 $this->arrMAILMAGATYPE = $masterData->getMasterData("mtb_mail_magazine_type"); 228 $this->arrSex = $masterData->getMasterData("mtb_sex"); 229 } 230 231 /** 232 * Page のプロセス(モバイル). 233 * 234 * @return void 235 */ 236 function mobileProcess() { 237 parent::mobileProcess(); 238 $this->mobileAction(); 239 $this->sendResponse(); 240 } 241 242 /** 243 * Page のAction(モバイル). 244 * 245 * @return void 246 */ 247 function mobileAction() { 248 $objDb = new SC_Helper_DB_Ex(); 249 $CONF = $objDb->sfGetBasisData(); // 店舗基本情報 250 //$objView = new SC_MobileView(); 251 252 // 生年月日選択肢の取得 253 $objDate = new SC_Date(); 254 $this->arrMonth = $objDate->getMonth(true); 255 $this->arrDay = $objDate->getDay(true); 256 257 $this->objQuery = new SC_Query(); 258 $this->objCustomer = new SC_Customer(); 259 260 //メールアドレス種別 261 $arrMailType = array("email" => true, "email_mobile" => true); 262 263 //---- 登録用カラム配列 264 $arrRegistColumn = array( 265 array( "column" => "name01", "convert" => "aKV" ), 266 array( "column" => "name02", "convert" => "aKV" ), 267 array( "column" => "kana01", "convert" => "CKV" ), 268 array( "column" => "kana02", "convert" => "CKV" ), 269 array( "column" => "zip01", "convert" => "n" ), 270 array( "column" => "zip02", "convert" => "n" ), 271 array( "column" => "pref", "convert" => "n" ), 272 array( "column" => "addr01", "convert" => "aKV" ), 273 array( "column" => "addr02", "convert" => "aKV" ), 274 array( "column" => "email", "convert" => "a" ), 275 array( "column" => "email_mobile", "convert" => "a" ), 276 array( "column" => "tel01", "convert" => "n" ), 277 array( "column" => "tel02", "convert" => "n" ), 278 array( "column" => "tel03", "convert" => "n" ), 279 array( "column" => "fax01", "convert" => "n" ), 280 array( "column" => "fax02", "convert" => "n" ), 281 array( "column" => "fax03", "convert" => "n" ), 282 array( "column" => "sex", "convert" => "n" ), 283 array( "column" => "job", "convert" => "n" ), 284 array( "column" => "birth", "convert" => "n" ), 285 array( "column" => "reminder", "convert" => "n" ), 286 array( "column" => "reminder_answer", "convert" => "aKV"), 287 array( "column" => "password", "convert" => "a" ), 288 array( "column" => "mailmaga_flg", "convert" => "n" ) 289 ); 290 291 $this->arrForm = $this->lfGetCustomerData(); 292 $this->arrForm['password'] = DEFAULT_PASSWORD; 293 294 if ($_SERVER["REQUEST_METHOD"] == "POST") { 295 296 //-- POSTデータの引き継ぎ 297 $this->arrForm = array_merge($this->arrForm, $_POST); 298 299 //-- 入力データの変換 300 $this->arrForm = $this->lfConvertParam($this->arrForm, $arrRegistColumn); 301 302 // 戻るボタン用処理 303 if (!empty($_POST["return"])) { 304 switch ($_POST["mode"]) { 305 case "complete": 306 $_POST["mode"] = "set3"; 307 break; 308 case "confirm": 309 $_POST["mode"] = "set2"; 310 break; 311 default: 312 $_POST["mode"] = "set1"; 313 break; 314 } 315 } 316 317 //-- 入力エラーチェック 318 if ($_POST["mode"] == "set1") { 319 $this->arrErr = $this->lfErrorCheck1($this->arrForm); 320 $this->tpl_mainpage = 'mypage/change.tpl'; 321 $this->tpl_title = '登録変更(1/3)'; 322 } elseif ($_POST["mode"] == "set2") { 323 $this->arrErr = $this->lfErrorCheck2($this->arrForm); 324 $this->tpl_mainpage = 'mypage/set1.tpl'; 325 $this->tpl_title = '登録変更(2/3)'; 326 } else { 327 $this->arrErr = $this->lfErrorCheck3($this->arrForm); 328 $this->tpl_mainpage = 'mypage/set2.tpl'; 329 $this->tpl_title = '登録変更(3/3)'; 330 } 331 332 if ($this->arrErr || !empty($_POST["return"])) { // 入力エラーのチェック 333 //-- データの設定 334 if ($_POST["mode"] == "set1") { 335 $checkVal = array("email", "email_mobile", "password", "reminder", "reminder_answer", "name01", "name02", "kana01", "kana02"); 336 } elseif ($_POST["mode"] == "set2") { 337 $checkVal = array("sex", "year", "month", "day", "zip01", "zip02"); 338 } else { 339 $checkVal = array("pref", "addr01", "addr02", "tel01", "tel02", "tel03", "mailmaga_flg"); 340 } 341 342 foreach($this->arrForm as $key => $val) { 343 if ($key != "return" && $key != "mode" && $key != "confirm" && $key != session_name() && !in_array($key, $checkVal)) { 344 $this->list_data[ $key ] = $val; 345 } 346 } 347 348 } else { 349 350 //-- テンプレート設定 351 if ($_POST["mode"] == "set1") { 352 $this->tpl_mainpage = 'mypage/set1.tpl'; 353 $this->tpl_title = '登録変更(2/3)'; 354 } elseif ($_POST["mode"] == "set2") { 355 $this->tpl_mainpage = 'mypage/set2.tpl'; 356 $this->tpl_title = '登録変更(3/3)'; 357 } elseif ($_POST["mode"] == "confirm") { 358 //パスワード表示 359 $passlen = strlen($this->arrForm['password']); 360 $this->passlen = $this->lfPassLen($passlen); 361 362 // メール受け取り 363 if (!isset($_POST['mailmaga_flg'])) $_POST['mailmaga_flg'] = ""; 364 if (strtolower($_POST['mailmaga_flg']) == "on") { 365 $this->arrForm['mailmaga_flg'] = "2"; 366 } else { 367 $this->arrForm['mailmaga_flg'] = "3"; 368 } 369 370 $this->tpl_mainpage = 'mypage/change_confirm.tpl'; 371 $this->tpl_title = '登録変更(確認ページ)'; 372 373 } 374 375 //-- データ設定 376 unset($this->list_data); 377 if ($_POST["mode"] == "set1") { 378 $checkVal = array("sex", "year", "month", "day", "zip01", "zip02"); 379 } elseif ($_POST["mode"] == "set2") { 380 $checkVal = array("pref", "addr01", "addr02", "tel01", "tel02", "tel03", "mailmaga_flg"); 381 } else { 382 $checkVal = array(); 383 } 384 385 foreach($this->arrForm as $key => $val) { 386 if ($key != "return" && $key != "mode" && $key != "confirm" && $key != session_name() && !in_array($key, $checkVal)) { 387 $this->list_data[ $key ] = $val; 388 } 389 } 390 391 392 //-- 仮登録と完了画面 393 if ($_POST["mode"] == "complete") { 394 //エラーなしでかつメールアドレスが重複していない場合 395 if($this->checkErrorTotal($arrRegistColumn, $arrMailType, true)) { 396 $this->arrForm['customer_id'] = $this->objCustomer->getValue('customer_id'); 397 //-- 編集登録 398 $objDb->sfEditCustomerData($this->arrForm, $arrRegistColumn); 399 //セッション情報を最新の状態に更新する 400 $this->objCustomer->updateSession(); 401 //完了ページへ 402 SC_Response_Ex::sendRedirect('change_complete.php'); 403 exit; 404 } else { 405 SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); 406 } 407 } 408 } 409 } 410 411 $arrPrivateVariables = array('secret_key', 'first_buy_date', 'last_buy_date', 'buy_times', 'buy_total', 'point', 'note', 'status', 'create_date', 'update_date', 'del_flg', 'cell01', 'cell02', 'cell03', 'mobile_phone_id'); 412 foreach ($arrPrivateVariables as $key) { 413 unset($this->list_data[$key]); 414 } 415 416 //---- ページ表示 417 //$objView->assignobj($this); 418 //$objView->display(SITE_FRAME); 162 } 163 $this->transactionid = SC_Helper_Session_Ex::getToken(); 419 164 } 420 165 … … 428 173 } 429 174 430 /**431 * すべてのエラーチェックを行う.432 *433 * @param array $arrRegistColumn 登録カラムの配列434 * @param array $arrMailType メール種別とフラグを格納した配列435 * @param bool $isMobile モバイル版登録チェックの場合 true436 * @return bool エラーの無い場合 true437 */438 function checkErrorTotal(&$arrRegistColumn, &$arrMailType, $isMobile = false) {439 // 入力データの変換440 $this->arrForm = $this->lfConvertParam($_POST, $arrRegistColumn);441 442 //エラーチェック443 $this->arrErr = $isMobile444 ? $this->lfErrorCheckMobile($this->arrForm)445 : $this->lfErrorCheck($this->arrForm);446 447 //メールアドレスを変更している場合、メールアドレスの重複チェック448 $arrMailType2 = $arrMailType;449 foreach ($arrMailType as $mailType => $mailTypeValue) {450 451 if ($this->arrForm[$mailType]452 != $this->objCustomer->getValue($mailType)){453 454 $email_cnt = $this->objQuery->count("dtb_customer",455 "del_flg=0 AND (email = ? OR email_mobile = ?) ",456 array($this->arrForm[$mailType], $this->arrForm[$mailType]));457 if ($email_cnt > 0){458 $arrMailType2[$mailType] = false;459 $this->arrErr[$mailType] .= "既に使用されているメールアドレスです。";460 }461 }462 }463 464 // エラーが存在せず, メールアドレスの重複が無い場合は true465 if (empty($this->arrErr)466 && $arrMailType2['email'] == true467 && $arrMailType2['email_mobile'] == true) {468 return true;469 } else {470 return false;471 }472 }473 474 175 /* パラメータ情報の初期化 */ 475 176 function lfInitParam() { 476 $this->objFormParam->addParam("お名前(姓)", "name01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 477 $this->objFormParam->addParam("お名前(名)", "name02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 478 $this->objFormParam->addParam("お名前(フリガナ・姓)", "kana01", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 479 $this->objFormParam->addParam("お名前(フリガナ・名)", "kana02", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 480 $this->objFormParam->addParam("郵便番号1", "zip01", ZIP01_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); 481 $this->objFormParam->addParam("郵便番号2", "zip02", ZIP02_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); 482 $this->objFormParam->addParam("都道府県", "pref", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 483 $this->objFormParam->addParam("住所1", "addr01", MTEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 484 $this->objFormParam->addParam("住所2", "addr02", MTEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 485 $this->objFormParam->addParam("お電話番号1", "tel01", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 486 $this->objFormParam->addParam("お電話番号2", "tel02", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 487 $this->objFormParam->addParam("お電話番号3", "tel03", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 488 } 489 490 //エラーチェック 491 177 178 $this->objFormParam->addParam("お名前(姓)", 'name01', STEXT_LEN, "aKV", array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 179 $this->objFormParam->addParam("お名前(名)", 'name02', STEXT_LEN, "aKV", array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" , "MAX_LENGTH_CHECK")); 180 $this->objFormParam->addParam("お名前(フリガナ・姓)", 'kana01', STEXT_LEN, "CKV", array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 181 $this->objFormParam->addParam("お名前(フリガナ・名)", 'kana02', STEXT_LEN, "CKV", array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 182 $this->objFormParam->addParam("パスワード", 'password', STEXT_LEN, "a", array("EXIST_CHECK", "SPTAB_CHECK" ,"ALNUM_CHECK")); 183 $this->objFormParam->addParam("パスワード確認用の質問", "reminder", STEXT_LEN, "n", array("EXIST_CHECK", "NUM_CHECK")); 184 $this->objFormParam->addParam("パスワード確認用の質問の答え", "reminder_answer", STEXT_LEN, "aKV", array("EXIST_CHECK","SPTAB_CHECK" , "MAX_LENGTH_CHECK")); 185 $this->objFormParam->addParam("郵便番号1", "zip01", ZIP01_LEN, "n", array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 186 $this->objFormParam->addParam("郵便番号2", "zip02", ZIP02_LEN, "n", array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 187 $this->objFormParam->addParam("都道府県", 'pref', INT_LEN, "n", array("EXIST_CHECK","NUM_CHECK")); 188 $this->objFormParam->addParam("住所1", "addr01", MTEXT_LEN, "aKV", array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 189 $this->objFormParam->addParam("住所2", "addr02", MTEXT_LEN, "aKV", array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 190 $this->objFormParam->addParam("お電話番号1", 'tel01', TEL_ITEM_LEN, "n", array("EXIST_CHECK","SPTAB_CHECK" )); 191 $this->objFormParam->addParam("お電話番号2", 'tel02', TEL_ITEM_LEN, "n", array("EXIST_CHECK","SPTAB_CHECK" )); 192 $this->objFormParam->addParam("お電話番号3", 'tel03', TEL_ITEM_LEN, "n", array("EXIST_CHECK","SPTAB_CHECK" )); 193 $this->objFormParam->addParam("性別", "sex", INT_LEN, "n", array("EXIST_CHECK", "NUM_CHECK")); 194 $this->objFormParam->addParam("職業", "job", INT_LEN, "n", array("NUM_CHECK")); 195 $this->objFormParam->addParam("年", "year", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 196 $this->objFormParam->addParam("月", "month", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 197 $this->objFormParam->addParam("日", "day", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 198 199 if ($this->isMobile === false){ 200 $this->objFormParam->addParam("FAX番号1", 'fax01', TEL_ITEM_LEN, "n", array("SPTAB_CHECK")); 201 $this->objFormParam->addParam("FAX番号2", 'fax02', TEL_ITEM_LEN, "n", array("SPTAB_CHECK")); 202 $this->objFormParam->addParam("FAX番号3", 'fax03', TEL_ITEM_LEN, "n", array("SPTAB_CHECK")); 203 $this->objFormParam->addParam("メールマガジン", "mailmaga_flg", INT_LEN, "n", array("EXIST_CHECK", "NUM_CHECK")); 204 $this->objFormParam->addParam("パスワード(確認)", 'password02', STEXT_LEN, "a", array("EXIST_CHECK", "SPTAB_CHECK" ,"ALNUM_CHECK"), "", false); 205 $this->objFormParam->addParam('メールアドレス', "email", MTEXT_LEN, "a", array("NO_SPTAB", "EXIST_CHECK", "EMAIL_CHECK", "SPTAB_CHECK" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); 206 $this->objFormParam->addParam('メールアドレス(確認)', "email02", MTEXT_LEN, "a", array("NO_SPTAB", "EXIST_CHECK", "EMAIL_CHECK","SPTAB_CHECK" , "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK"), "", false); 207 $this->objFormParam->addParam('携帯メールアドレス', "email_mobile", MTEXT_LEN, "a", array("NO_SPTAB", "EMAIL_CHECK", "SPTAB_CHECK" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); 208 $this->objFormParam->addParam('携帯メールアドレス(確認)', "email_mobile02", MTEXT_LEN, "a", array("NO_SPTAB", "EMAIL_CHECK","SPTAB_CHECK" , "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK"), "", false); 209 } else { 210 $this->objFormParam->addParam('メールアドレス', "email", MTEXT_LEN, "a", array("EXIST_CHECK", "EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK","MOBILE_EMAIL_CHECK")); 211 } 212 } 213 214 //---- 入力エラーチェック 492 215 function lfErrorCheck($array) { 493 $objErr = new SC_CheckError($array); 494 495 $objErr->doFunc(array("お名前(姓)", 'name01', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 496 $objErr->doFunc(array("お名前(名)", 'name02', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 497 $objErr->doFunc(array("お名前(フリガナ・姓)", 'kana01', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 498 $objErr->doFunc(array("お名前(フリガナ・名)", 'kana02', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 499 $objErr->doFunc(array("郵便番号1", "zip01", ZIP01_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 500 $objErr->doFunc(array("郵便番号2", "zip02", ZIP02_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 216 217 // 入力データを渡す。 218 $arrRet = $this->objFormParam->getHashArray(); 219 $objErr = new SC_CheckError($arrRet); 220 $objErr->arrErr = $this->objFormParam->checkError(); 221 222 $objErr->doFunc(array("お電話番号", "tel01", "tel02", "tel03"),array("TEL_CHECK")); 501 223 $objErr->doFunc(array("郵便番号", "zip01", "zip02"), array("ALL_EXIST_CHECK")); 502 $objErr->doFunc(array("都道府県", 'pref'), array("SELECT_CHECK","NUM_CHECK"));503 $objErr->doFunc(array("住所1", "addr01", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));504 $objErr->doFunc(array("住所2", "addr02", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));505 $objErr->doFunc(array('メールアドレス', "email", MTEXT_LEN) ,array("EXIST_CHECK", "EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK"));506 $objErr->doFunc(array('メールアドレス(確認)', "email02", MTEXT_LEN) ,array("EXIST_CHECK", "EMAIL_CHECK","NO_SPTAB" , "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK"));507 $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', "email", "email02") ,array("EQUAL_CHECK"));508 $objErr->doFunc(array('携帯メールアドレス', "email_mobile", MTEXT_LEN) ,array("EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK", "MOBILE_EMAIL_CHECK"));509 $objErr->doFunc(array('携帯メールアドレス(確認)', "email_mobile02", MTEXT_LEN), array("EMAIL_CHECK","NO_SPTAB" , "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK", "MOBILE_EMAIL_CHECK"));510 $objErr->doFunc(array('携帯メールアドレス', '携帯メールアドレス(確認)', "email_mobile", "email_mobile02") ,array("EQUAL_CHECK"));511 $objErr->doFunc(array("お電話番号1", 'tel01'), array("EXIST_CHECK","SPTAB_CHECK"));512 $objErr->doFunc(array("お電話番号2", 'tel02'), array("EXIST_CHECK","SPTAB_CHECK"));513 $objErr->doFunc(array("お電話番号3", 'tel03'), array("EXIST_CHECK","SPTAB_CHECK"));514 $objErr->doFunc(array("お電話番号", "tel01", "tel02", "tel03") ,array("TEL_CHECK"));515 $objErr->doFunc(array("FAX番号", "fax01", "fax02", "fax03") ,array("TEL_CHECK"));516 $objErr->doFunc(array("ご性別", "sex") ,array("SELECT_CHECK", "NUM_CHECK"));517 $objErr->doFunc(array("ご職業", "job") ,array("NUM_CHECK"));518 224 $objErr->doFunc(array("生年月日", "year", "month", "day"), array("CHECK_BIRTHDAY")); 519 $objErr->doFunc(array("パスワード", 'password', PASSWORD_LEN1, PASSWORD_LEN2), array("EXIST_CHECK", "ALNUM_CHECK", "NUM_RANGE_CHECK")); 520 $objErr->doFunc(array("パスワード(確認)", 'password02', PASSWORD_LEN1, PASSWORD_LEN2), array("EXIST_CHECK", "ALNUM_CHECK", "NUM_RANGE_CHECK")); 521 $objErr->doFunc(array("パスワード", 'パスワード(確認)', 'password', 'password02'), array("EQUAL_CHECK")); 522 $objErr->doFunc(array("パスワードを忘れたときの質問", "reminder") ,array("SELECT_CHECK", "NUM_CHECK")); 523 $objErr->doFunc(array("パスワードを忘れたときの答え", "reminder_answer", STEXT_LEN) ,array("EXIST_CHECK", "MAX_LENGTH_CHECK")); 524 $objErr->doFunc(array("メールマガジン", "mailmaga_flg") ,array("SELECT_CHECK", "NUM_CHECK")); 225 if ($this->isMobile === false){ 226 $objErr->doFunc(array('パスワード', 'パスワード(確認)', "password", "password02") ,array("EQUAL_CHECK")); 227 $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', "email", "email02") ,array("EQUAL_CHECK")); 228 $objErr->doFunc(array("FAX番号", "fax01", "fax02", "fax03") ,array("TEL_CHECK")); 229 } 230 231 // 現会員の判定 → 現会員もしくは仮登録中は、メアド一意が前提になってるので同じメアドで登録不可 232 $register_user_flg = SC_Helper_Customer_Ex::lfCheckRegisterUserFromEmail($arrRet["email"]); 233 switch($register_user_flg) { 234 case 1: 235 $objErr->arrErr["email"] .= "※ すでに会員登録で使用されているメールアドレスです。<br />"; 236 break; 237 case 2: 238 $objErr->arrErr["email"] .= "※ 退会から一定期間の間は、同じメールアドレスを使用することはできません。<br />"; 239 break; 240 default: 241 break; 242 } 525 243 return $objErr->arrErr; 526 527 } 528 529 //---- 取得文字列の変換 530 function lfConvertParam($array, $arrRegistColumn) { 531 /* 532 * 文字列の変換 533 * K : 「半角(ハンカク)片仮名」を「全角片仮名」に変換 534 * C : 「全角ひら仮名」を「全角かた仮名」に変換 535 * V : 濁点付きの文字を一文字に変換。"K","H"と共に使用します 536 * n : 「全角」数字を「半角(ハンカク)」に変換 537 * a : 全角英数字を半角英数字に変換する 538 */ 539 foreach ($arrRegistColumn as $registColumn) { 540 $key = $registColumn["column"]; 541 $mb_convert_kana_option = $registColumn["convert"]; 542 $val =& $array[$key]; 543 544 // string 型以外は変換対象外とする 545 if (!is_string($val)) continue; 546 547 // 文字変換 548 if (strlen($val) > 0) { 549 $val = mb_convert_kana($val ,$mb_convert_kana_option); 550 } 551 552 // メールアドレスは小文字に変換 553 if ($key == 'email' || $key == 'email02' || $key == 'email_mobile' || $key == 'email_mobile02') { 554 $val = strtolower($val); 555 } 556 } 557 return $array; 558 } 559 244 } 245 246 function lfRegistData() { 247 248 $objQuery = new SC_Query(); 249 $objCustomer = new SC_Customer(); 250 251 $arrRet = $this->objFormParam->getHashArray(); 252 253 // 登録データの作成 254 $sqlval = $this->objFormParam->getDbArray(); 255 $sqlval['birth'] = SC_Utils_Ex::sfGetTimestamp($arrRet['year'], $arrRet['month'], $arrRet['day']); 256 257 $objQuery->begin(); 258 SC_Helper_Customer_Ex::sfEditCustomerData($sqlval, $objCustomer->getValue('customer_id')); 259 $objQuery->commit(); 260 } 261 560 262 /** 561 263 * 顧客情報の取得 … … 564 266 */ 565 267 function lfGetCustomerData(){ 268 $objQuery = new SC_Query(); 269 $objCustomer = new SC_Customer(); 270 566 271 // 顧客情報DB取得 567 $ret = $ this->objQuery->select("*","dtb_customer","customer_id=?", array($this->objCustomer->getValue('customer_id')));272 $ret = $objQuery->select("*","dtb_customer","customer_id=?", array($objCustomer->getValue('customer_id'))); 568 273 $arrForm = $ret[0]; 569 274 570 275 // 確認項目に複製 571 276 $arrForm['email02'] = $arrForm['email']; 572 $arrForm['email_mobile02'] = $arrForm['email_mobile 02'];277 $arrForm['email_mobile02'] = $arrForm['email_mobile']; 573 278 574 279 // 誕生日を年月日に分ける 575 280 if (isset($arrForm['birth'])){ 576 281 $birth = split(" ", $arrForm["birth"]); 577 list($year, $month, $day) = split("-",$birth[0]); 578 579 $arrForm['year'] = $year; 580 $arrForm['month'] = $month; 581 $arrForm['day'] = $day; 582 282 list($arrForm['year'], $arrForm['month'], $arrForm['day']) = split("-",$birth[0]); 583 283 } 584 284 return $arrForm; 585 }586 587 /**588 * 編集登録589 * TODO590 * @deprecated 未使用?591 */592 function lfRegistData($array, $arrRegistColumn) {593 594 foreach ($arrRegistColumn as $data) {595 if ($data["column"] != "password") {596 if($array[ $data['column'] ] == "") {597 $arrRegist[ $data['column'] ] = NULL;598 } else {599 $arrRegist[ $data["column"] ] = $array[ $data["column"] ];600 }601 }602 }603 if (strlen($array["year"]) > 0 && strlen($array["month"]) > 0 && strlen($array["day"]) > 0) {604 $arrRegist["birth"] = $array["year"] ."/". $array["month"] ."/". $array["day"] ." 00:00:00";605 } else {606 $arrRegist["birth"] = NULL;607 }608 609 //-- パスワードの更新がある場合は暗号化。(更新がない場合はUPDATE文を構成しない)610 if ($array["password"] != DEFAULT_PASSWORD) $arrRegist["password"] = sha1($array["password"] . ":" . AUTH_MAGIC);611 $arrRegist["update_date"] = "NOW()";612 613 //-- 編集登録実行614 $this->objQuery->begin();615 $this->objQuery->update("dtb_customer", $arrRegist, "customer_id = ? ", array($this->objCustomer->getValue('customer_id')));616 $this->objQuery->commit();617 }618 619 //確認ページ用パスワード表示用620 621 function lfPassLen($passlen){622 $ret = "";623 for ($i=0;$i<$passlen;true){624 $ret.="*";625 $i++;626 }627 return $ret;628 285 } 629 286 … … 642 299 } 643 300 } 644 645 646 // }}} 647 // {{{ mobile functions 648 649 //エラーチェック 650 651 function lfErrorCheckMobile($array) { 652 $objErr = new SC_CheckError($array); 653 654 $objErr->doFunc(array("お名前(姓)", 'name01', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 655 $objErr->doFunc(array("お名前(名)", 'name02', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 656 $objErr->doFunc(array("お名前(フリガナ・姓)", 'kana01', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 657 $objErr->doFunc(array("お名前(フリガナ・名)", 'kana02', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 658 $objErr->doFunc(array("郵便番号1", "zip01", ZIP01_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 659 $objErr->doFunc(array("郵便番号2", "zip02", ZIP02_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 660 $objErr->doFunc(array("郵便番号", "zip01", "zip02"), array("ALL_EXIST_CHECK")); 661 $objErr->doFunc(array("都道府県", 'pref'), array("SELECT_CHECK","NUM_CHECK")); 662 $objErr->doFunc(array('住所1', "addr01", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 663 $objErr->doFunc(array('住所2', "addr02", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 664 $objErr->doFunc(array('メールアドレス', "email", MTEXT_LEN) ,array("EXIST_CHECK", "EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); 665 $objErr->doFunc(array('携帯メールアドレス', "email_mobile", MTEXT_LEN) ,array("EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK", "MOBILE_EMAIL_CHECK")); 666 $objErr->doFunc(array("電話番号1", 'tel01'), array("EXIST_CHECK","SPTAB_CHECK")); 667 $objErr->doFunc(array("電話番号2", 'tel02'), array("EXIST_CHECK","SPTAB_CHECK")); 668 $objErr->doFunc(array("電話番号3", 'tel03'), array("EXIST_CHECK","SPTAB_CHECK")); 669 $objErr->doFunc(array("電話番号", "tel01", "tel02", "tel03") ,array("TEL_CHECK")); 670 $objErr->doFunc(array("FAX番号", "fax01", "fax02", "fax03") ,array("TEL_CHECK")); 671 $objErr->doFunc(array("性別", "sex") ,array("SELECT_CHECK", "NUM_CHECK")); 672 $objErr->doFunc(array("ご職業", "job") ,array("NUM_CHECK")); 673 $objErr->doFunc(array("生年月日", "year", "month", "day"), array("CHECK_BIRTHDAY")); 674 $objErr->doFunc(array("パスワード", 'password', PASSWORD_LEN1, PASSWORD_LEN2), array("EXIST_CHECK", "ALNUM_CHECK", "NUM_RANGE_CHECK")); 675 $objErr->doFunc(array("パスワード確認用の質問", "reminder") ,array("SELECT_CHECK", "NUM_CHECK")); 676 $objErr->doFunc(array("パスワード確認用の質問の答え", "reminder_answer", STEXT_LEN) ,array("EXIST_CHECK", "MAX_LENGTH_CHECK")); 677 return $objErr->arrErr; 678 679 } 680 681 682 //---- 入力エラーチェック 683 function lfErrorCheck1($array) { 684 685 $objErr = new SC_CheckError($array); 686 687 $objErr->doFunc(array("お名前(姓)", 'name01', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 688 $objErr->doFunc(array("お名前(名)", 'name02', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" , "MAX_LENGTH_CHECK")); 689 $objErr->doFunc(array("お名前(フリガナ・姓)", 'kana01', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 690 $objErr->doFunc(array("お名前(フリガナ・名)", 'kana02', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 691 $objErr->doFunc(array('メールアドレス', "email", MTEXT_LEN) ,array("NO_SPTAB", "EXIST_CHECK", "EMAIL_CHECK", "SPTAB_CHECK" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); 692 $objErr->doFunc(array('携帯メールアドレス', "email_mobile", MTEXT_LEN) ,array("NO_SPTAB", "EMAIL_CHECK", "SPTAB_CHECK" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK", "MOBILE_EMAIL_CHECK")); 693 694 //現会員の判定 → 現会員もしくは仮登録中は、メアド一意が前提になってるので同じメアドで登録不可 695 $array["customer_id"] = $this->objCustomer->getValue('customer_id'); 696 if (strlen($array["email"]) > 0) { 697 $arrRet = $this->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"])); 698 699 if(count($arrRet) > 0) { 700 if($arrRet[0]['del_flg'] != '1') { 701 // 会員である場合 702 $objErr->arrErr["email"] .= "※ すでに会員登録で使用されているメールアドレスです。<br />"; 703 } else { 704 // 退会した会員である場合 705 $leave_time = SC_Utils_Ex::sfDBDatetoTime($arrRet[0]['update_date']); 706 $now_time = time(); 707 $pass_time = $now_time - $leave_time; 708 // 退会から何時間-経過しているか判定する。 709 $limit_time = ENTRY_LIMIT_HOUR * 3600; 710 if($pass_time < $limit_time) { 711 $objErr->arrErr["email"] .= "※ 退会から一定期間の間は、同じメールアドレスを使用することはできません。<br />"; 712 } 713 } 714 } 715 } 716 717 $objErr->doFunc(array("パスワード", 'password', PASSWORD_LEN1, PASSWORD_LEN2), array("EXIST_CHECK", "SPTAB_CHECK" ,"ALNUM_CHECK", "NUM_RANGE_CHECK")); 718 $objErr->doFunc(array("パスワード確認用の質問", "reminder") ,array("SELECT_CHECK", "NUM_CHECK")); 719 $objErr->doFunc(array("パスワード確認用の質問の答え", "reminder_answer", STEXT_LEN) ,array("EXIST_CHECK","SPTAB_CHECK" , "MAX_LENGTH_CHECK")); 720 721 return $objErr->arrErr; 722 } 723 724 //---- 入力エラーチェック 725 function lfErrorCheck2($array) { 726 727 $objErr = new SC_CheckError($array); 728 729 $objErr->doFunc(array("郵便番号1", "zip01", ZIP01_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 730 $objErr->doFunc(array("郵便番号2", "zip02", ZIP02_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 731 $objErr->doFunc(array("郵便番号", "zip01", "zip02"), array("ALL_EXIST_CHECK")); 732 733 $objErr->doFunc(array("性別", "sex") ,array("SELECT_CHECK", "NUM_CHECK")); 734 $objErr->doFunc(array("生年月日", "year", "month", "day"), array("CHECK_BIRTHDAY")); 735 736 return $objErr->arrErr; 737 } 738 739 //---- 入力エラーチェック 740 function lfErrorCheck3($array) { 741 742 $objErr = new SC_CheckError($array); 743 744 $objErr->doFunc(array("都道府県", 'pref'), array("SELECT_CHECK","NUM_CHECK")); 745 $objErr->doFunc(array('住所1', "addr01", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 746 $objErr->doFunc(array('住所2', "addr02", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 747 $objErr->doFunc(array("電話番号1", 'tel01'), array("EXIST_CHECK","SPTAB_CHECK" )); 748 $objErr->doFunc(array("電話番号2", 'tel02'), array("EXIST_CHECK","SPTAB_CHECK" )); 749 $objErr->doFunc(array("電話番号3", 'tel03'), array("EXIST_CHECK","SPTAB_CHECK" )); 750 $objErr->doFunc(array("電話番号", "tel01", "tel02", "tel03") ,array("TEL_CHECK")); 751 752 return $objErr->arrErr; 753 } 301 754 302 } 755 303 ?>
Note: See TracChangeset
for help on using the changeset viewer.