1 | <?php |
---|
2 | /* |
---|
3 | * This file is part of EC-CUBE |
---|
4 | * |
---|
5 | * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved. |
---|
6 | * |
---|
7 | * http://www.lockon.co.jp/ |
---|
8 | * |
---|
9 | * This program is free software; you can redistribute it and/or |
---|
10 | * modify it under the terms of the GNU General Public License |
---|
11 | * as published by the Free Software Foundation; either version 2 |
---|
12 | * of the License, or (at your option) any later version. |
---|
13 | * |
---|
14 | * This program is distributed in the hope that it will be useful, |
---|
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
---|
17 | * GNU General Public License for more details. |
---|
18 | * |
---|
19 | * You should have received a copy of the GNU General Public License |
---|
20 | * along with this program; if not, write to the Free Software |
---|
21 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
---|
22 | */ |
---|
23 | |
---|
24 | // {{{ requires |
---|
25 | require_once(CLASS_PATH . "pages/LC_Page.php"); |
---|
26 | |
---|
27 | if (file_exists(MODULE_PATH . "mdl_gmopg/inc/function.php")) { |
---|
28 | require_once(MODULE_PATH . "mdl_gmopg/inc/function.php"); |
---|
29 | } |
---|
30 | |
---|
31 | /** |
---|
32 | * 登録内容変更 のページクラス. |
---|
33 | * |
---|
34 | * @package Page |
---|
35 | * @author LOCKON CO.,LTD. |
---|
36 | * @version $Id$ |
---|
37 | */ |
---|
38 | class LC_Page_Mypage_Change extends LC_Page { |
---|
39 | |
---|
40 | |
---|
41 | // }}} |
---|
42 | // {{{ functions |
---|
43 | |
---|
44 | /** |
---|
45 | * Page を初期化する. |
---|
46 | * |
---|
47 | * @return void |
---|
48 | */ |
---|
49 | function init() { |
---|
50 | parent::init(); |
---|
51 | $this->tpl_mainpage = TEMPLATE_DIR . 'mypage/change.tpl'; |
---|
52 | $this->tpl_title = 'MYページ'; |
---|
53 | $this->tpl_subtitle = '会員登録内容変更(入力ページ)'; |
---|
54 | $this->tpl_navi = TEMPLATE_DIR . 'mypage/navi.tpl'; |
---|
55 | $this->tpl_mainno = 'mypage'; |
---|
56 | $this->tpl_mypageno = 'change'; |
---|
57 | $this->tpl_column_num = 1; |
---|
58 | |
---|
59 | $masterData = new SC_DB_MasterData_Ex(); |
---|
60 | $this->arrReminder = $masterData->getMasterData("mtb_reminder"); |
---|
61 | $this->arrPref = $masterData->getMasterData("mtb_pref", |
---|
62 | array("pref_id", "pref_name", "rank")); |
---|
63 | $this->arrJob = $masterData->getMasterData("mtb_job"); |
---|
64 | $this->arrMAILMAGATYPE = $masterData->getMasterData("mtb_mail_magazine_type"); |
---|
65 | $this->arrSex = $masterData->getMasterData("mtb_sex"); |
---|
66 | $this->allowClientCache(); |
---|
67 | |
---|
68 | } |
---|
69 | |
---|
70 | /** |
---|
71 | * Page のプロセス. |
---|
72 | * |
---|
73 | * @return void |
---|
74 | */ |
---|
75 | function process() { |
---|
76 | $objView = new SC_SiteView(); |
---|
77 | $this->objQuery = new SC_Query(); |
---|
78 | $this->objCustomer = new SC_Customer(); |
---|
79 | $this->objFormParam = new SC_FormParam(); |
---|
80 | |
---|
81 | // レイアウトデザインを取得 |
---|
82 | $objLayout = new SC_Helper_PageLayout_Ex(); |
---|
83 | $objLayout->sfGetPageLayout($this, false, "mypage/index.php"); |
---|
84 | |
---|
85 | // 生年月日選択肢の取得 |
---|
86 | $objDate = new SC_Date(START_BIRTH_YEAR, date("Y",strtotime("now"))); |
---|
87 | $this->arrYear = $objDate->getYear('', 1950, ''); |
---|
88 | $this->arrMonth = $objDate->getMonth(true); |
---|
89 | $this->arrDay = $objDate->getDay(true); |
---|
90 | |
---|
91 | // ログインチェック |
---|
92 | if (!$this->objCustomer->isLoginSuccess()){ |
---|
93 | SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); |
---|
94 | }else { |
---|
95 | //マイページトップ顧客情報表示用 |
---|
96 | $this->CustomerName1 = $this->objCustomer->getvalue('name01'); |
---|
97 | $this->CustomerName2 = $this->objCustomer->getvalue('name02'); |
---|
98 | $this->CustomerPoint = $this->objCustomer->getvalue('point'); |
---|
99 | } |
---|
100 | |
---|
101 | //---- 登録用カラム配列 |
---|
102 | $arrRegistColumn = array( |
---|
103 | array( "column" => "name01", "convert" => "aKV" ), |
---|
104 | array( "column" => "name02", "convert" => "aKV" ), |
---|
105 | array( "column" => "kana01", "convert" => "CKV" ), |
---|
106 | array( "column" => "kana02", "convert" => "CKV" ), |
---|
107 | array( "column" => "zip01", "convert" => "n" ), |
---|
108 | array( "column" => "zip02", "convert" => "n" ), |
---|
109 | array( "column" => "pref", "convert" => "n" ), |
---|
110 | array( "column" => "addr01", "convert" => "aKV" ), |
---|
111 | array( "column" => "addr02", "convert" => "aKV" ), |
---|
112 | array( "column" => "email", "convert" => "a" ), |
---|
113 | array( "column" => "email_mobile", "convert" => "a" ), |
---|
114 | array( "column" => "tel01", "convert" => "n" ), |
---|
115 | array( "column" => "tel02", "convert" => "n" ), |
---|
116 | array( "column" => "tel03", "convert" => "n" ), |
---|
117 | array( "column" => "fax01", "convert" => "n" ), |
---|
118 | array( "column" => "fax02", "convert" => "n" ), |
---|
119 | array( "column" => "fax03", "convert" => "n" ), |
---|
120 | array( "column" => "sex", "convert" => "n" ), |
---|
121 | array( "column" => "job", "convert" => "n" ), |
---|
122 | array( "column" => "birth", "convert" => "n" ), |
---|
123 | array( "column" => "password", "convert" => "an" ), |
---|
124 | array( "column" => "reminder", "convert" => "n" ), |
---|
125 | array( "column" => "reminder_answer", "convert" => "aKV" ), |
---|
126 | array( "column" => "mailmaga_flg", "convert" => "n" ) |
---|
127 | ); |
---|
128 | |
---|
129 | //メールアドレス種別 |
---|
130 | $arrMailType = array("email" => true, "email_mobile" => true); |
---|
131 | |
---|
132 | if (!isset($_POST['mode'])) $_POST['mode'] = ""; |
---|
133 | |
---|
134 | switch ($_POST['mode']){ |
---|
135 | |
---|
136 | case 'confirm': |
---|
137 | |
---|
138 | //エラーなしでかつメールアドレスが重複していない場合 |
---|
139 | if ($this->checkErrorTotal($arrRegistColumn, $arrMailType)) { |
---|
140 | |
---|
141 | //確認ページへ |
---|
142 | $this->tpl_mainpage = TEMPLATE_DIR . 'mypage/change_confirm.tpl'; |
---|
143 | $this->tpl_subtitle = '会員登録内容変更(確認ページ)'; |
---|
144 | $passlen = strlen($this->arrForm['password']); |
---|
145 | $this->passlen = $this->lfPassLen($passlen); |
---|
146 | } else { |
---|
147 | $this->lfFormReturn($this->arrForm,$this); |
---|
148 | } |
---|
149 | |
---|
150 | break; |
---|
151 | |
---|
152 | case 'return': |
---|
153 | $this->arrForm = $_POST; |
---|
154 | $this->lfFormReturn($this->arrForm,$this); |
---|
155 | break; |
---|
156 | |
---|
157 | case 'gmo_oneclick': |
---|
158 | sfGMOMypageEdit(); |
---|
159 | $this->arrForm = $this->lfGetCustomerData(); |
---|
160 | $this->arrForm['password'] = DEFAULT_PASSWORD; |
---|
161 | $this->arrForm['password02'] = DEFAULT_PASSWORD; |
---|
162 | break; |
---|
163 | case 'complete': |
---|
164 | //エラーなしでかつメールアドレスが重複していない場合 |
---|
165 | if ($this->checkErrorTotal($arrRegistColumn, $arrMailType)) { |
---|
166 | $this->arrForm['customer_id'] = $this->objCustomer->getValue('customer_id'); |
---|
167 | //-- 編集登録 |
---|
168 | $objDb = new SC_Helper_DB_Ex(); |
---|
169 | $objDb->sfEditCustomerData($this->arrForm, $arrRegistColumn); |
---|
170 | //セッション情報を最新の状態に更新する |
---|
171 | $this->objCustomer->updateSession(); |
---|
172 | |
---|
173 | // Do楽SNS連携モジュールユーザ情報更新処理 |
---|
174 | if (function_exists('sfUpdateSourakuSNSUserInfo')) { |
---|
175 | sfUpdateSourakuSNSUserInfo(); |
---|
176 | } |
---|
177 | |
---|
178 | //完了ページへ |
---|
179 | $this->sendRedirect($this->getLocation("./change_complete.php")); |
---|
180 | exit; |
---|
181 | } else { |
---|
182 | SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); |
---|
183 | } |
---|
184 | break; |
---|
185 | |
---|
186 | default: |
---|
187 | //顧客情報取得 |
---|
188 | $this->arrForm = $this->lfGetCustomerData(); |
---|
189 | $this->arrForm['password'] = DEFAULT_PASSWORD; |
---|
190 | $this->arrForm['password02'] = DEFAULT_PASSWORD; |
---|
191 | break; |
---|
192 | } |
---|
193 | |
---|
194 | //誕生日データ登録の有無 |
---|
195 | $arrCustomer = $this->lfGetCustomerData(); |
---|
196 | if ($arrCustomer['birth'] != ""){ |
---|
197 | $this->birth_check = true; |
---|
198 | } |
---|
199 | |
---|
200 | $objView->assignobj($this); //$objpage内の全てのテンプレート変数をsmartyに格納 |
---|
201 | $objView->display(SITE_FRAME); //パスとテンプレート変数の呼び出し、実行 |
---|
202 | |
---|
203 | |
---|
204 | } |
---|
205 | |
---|
206 | /** |
---|
207 | * モバイルページを初期化する. |
---|
208 | * |
---|
209 | * @return void |
---|
210 | */ |
---|
211 | function mobileInit() { |
---|
212 | $this->tpl_mainpage = 'mypage/change.tpl'; // メインテンプレート |
---|
213 | $this->tpl_title .= '登録変更(1/3)'; // ページタイトル |
---|
214 | |
---|
215 | $masterData = new SC_DB_MasterData_Ex(); |
---|
216 | $this->arrReminder = $masterData->getMasterData("mtb_reminder"); |
---|
217 | $this->arrPref = $masterData->getMasterData("mtb_pref", |
---|
218 | array("pref_id", "pref_name", "rank")); |
---|
219 | $this->arrJob = $masterData->getMasterData("mtb_job"); |
---|
220 | $this->arrMAILMAGATYPE = $masterData->getMasterData("mtb_mail_magazine_type"); |
---|
221 | $this->arrSex = $masterData->getMasterData("mtb_sex"); |
---|
222 | } |
---|
223 | |
---|
224 | /** |
---|
225 | * Page のプロセス(モバイル). |
---|
226 | * |
---|
227 | * @return void |
---|
228 | */ |
---|
229 | function mobileProcess() { |
---|
230 | $objDb = new SC_Helper_DB_Ex(); |
---|
231 | $CONF = $objDb->sf_getBasisData(); // 店舗基本情報 |
---|
232 | $objConn = new SC_DbConn(); |
---|
233 | $objView = new SC_MobileView(); |
---|
234 | |
---|
235 | // 生年月日選択肢の取得 |
---|
236 | $objDate = new SC_Date(); |
---|
237 | $this->arrMonth = $objDate->getMonth(true); |
---|
238 | $this->arrDay = $objDate->getDay(true); |
---|
239 | |
---|
240 | $this->objQuery = new SC_Query(); |
---|
241 | $this->objCustomer = new SC_Customer(); |
---|
242 | |
---|
243 | //メールアドレス種別 |
---|
244 | $arrMailType = array("email" => true, "email_mobile" => true); |
---|
245 | |
---|
246 | //---- 登録用カラム配列 |
---|
247 | $arrRegistColumn = array( |
---|
248 | array( "column" => "name01", "convert" => "aKV" ), |
---|
249 | array( "column" => "name02", "convert" => "aKV" ), |
---|
250 | array( "column" => "kana01", "convert" => "CKV" ), |
---|
251 | array( "column" => "kana02", "convert" => "CKV" ), |
---|
252 | array( "column" => "zip01", "convert" => "n" ), |
---|
253 | array( "column" => "zip02", "convert" => "n" ), |
---|
254 | array( "column" => "pref", "convert" => "n" ), |
---|
255 | array( "column" => "addr01", "convert" => "aKV" ), |
---|
256 | array( "column" => "addr02", "convert" => "aKV" ), |
---|
257 | array( "column" => "email", "convert" => "a" ), |
---|
258 | array( "column" => "email_mobile", "convert" => "a" ), |
---|
259 | array( "column" => "tel01", "convert" => "n" ), |
---|
260 | array( "column" => "tel02", "convert" => "n" ), |
---|
261 | array( "column" => "tel03", "convert" => "n" ), |
---|
262 | array( "column" => "fax01", "convert" => "n" ), |
---|
263 | array( "column" => "fax02", "convert" => "n" ), |
---|
264 | array( "column" => "fax03", "convert" => "n" ), |
---|
265 | array( "column" => "sex", "convert" => "n" ), |
---|
266 | array( "column" => "job", "convert" => "n" ), |
---|
267 | array( "column" => "birth", "convert" => "n" ), |
---|
268 | array( "column" => "reminder", "convert" => "n" ), |
---|
269 | array( "column" => "reminder_answer", "convert" => "aKV"), |
---|
270 | array( "column" => "password", "convert" => "a" ), |
---|
271 | array( "column" => "mailmaga_flg", "convert" => "n" ) |
---|
272 | ); |
---|
273 | |
---|
274 | //---- 登録除外用カラム配列 |
---|
275 | $arrRejectRegistColumn = array("year", "month", "day", "email02", "email_mobile02", "password02"); |
---|
276 | |
---|
277 | $this->arrForm = $this->lfGetCustomerData(); |
---|
278 | $this->arrForm['password'] = DEFAULT_PASSWORD; |
---|
279 | |
---|
280 | if ($_SERVER["REQUEST_METHOD"] == "POST") { |
---|
281 | |
---|
282 | //-- POSTデータの引き継ぎ |
---|
283 | $this->arrForm = array_merge($this->arrForm, $_POST); |
---|
284 | |
---|
285 | if (!isset($this->arrForm['year'])) $this->arrForm['year'] = ""; |
---|
286 | if($this->arrForm['year'] == '----') { |
---|
287 | $this->arrForm['year'] = ''; |
---|
288 | } |
---|
289 | |
---|
290 | // emailはすべて小文字で処理 |
---|
291 | $this->paramToLower($_POST ); |
---|
292 | |
---|
293 | //-- 入力データの変換 |
---|
294 | $this->arrForm = $this->lfConvertParam($this->arrForm, $arrRegistColumn); |
---|
295 | |
---|
296 | // 戻るボタン用処理 |
---|
297 | if (!empty($_POST["return"])) { |
---|
298 | switch ($_POST["mode"]) { |
---|
299 | case "complete": |
---|
300 | $_POST["mode"] = "set3"; |
---|
301 | break; |
---|
302 | case "confirm": |
---|
303 | $_POST["mode"] = "set2"; |
---|
304 | break; |
---|
305 | default: |
---|
306 | $_POST["mode"] = "set1"; |
---|
307 | break; |
---|
308 | } |
---|
309 | } |
---|
310 | |
---|
311 | //-- 入力エラーチェック |
---|
312 | if ($_POST["mode"] == "set1") { |
---|
313 | $this->arrErr = $this->lfErrorCheck1($this->arrForm); |
---|
314 | $this->tpl_mainpage = 'mypage/change.tpl'; |
---|
315 | $this->tpl_title = '登録変更(1/3)'; |
---|
316 | } elseif ($_POST["mode"] == "set2") { |
---|
317 | $this->arrErr = $this->lfErrorCheck2($this->arrForm); |
---|
318 | $this->tpl_mainpage = 'mypage/set1.tpl'; |
---|
319 | $this->tpl_title = '登録変更(2/3)'; |
---|
320 | } else { |
---|
321 | $this->arrErr = $this->lfErrorCheck3($this->arrForm); |
---|
322 | $this->tpl_mainpage = 'mypage/set2.tpl'; |
---|
323 | $this->tpl_title = '登録変更(3/3)'; |
---|
324 | } |
---|
325 | |
---|
326 | if ($this->arrErr || !empty($_POST["return"])) { // 入力エラーのチェック |
---|
327 | //-- データの設定 |
---|
328 | if ($_POST["mode"] == "set1") { |
---|
329 | $checkVal = array("email", "email_mobile", "password", "reminder", "reminder_answer", "name01", "name02", "kana01", "kana02"); |
---|
330 | } elseif ($_POST["mode"] == "set2") { |
---|
331 | $checkVal = array("sex", "year", "month", "day", "zip01", "zip02"); |
---|
332 | } else { |
---|
333 | $checkVal = array("pref", "addr01", "addr02", "tel01", "tel02", "tel03", "mailmaga_flg"); |
---|
334 | } |
---|
335 | |
---|
336 | foreach($this->arrForm as $key => $val) { |
---|
337 | if ($key != "return" && $key != "mode" && $key != "confirm" && $key != session_name() && !in_array($key, $checkVal)) { |
---|
338 | $this->list_data[ $key ] = $val; |
---|
339 | } |
---|
340 | } |
---|
341 | |
---|
342 | } else { |
---|
343 | |
---|
344 | //-- テンプレート設定 |
---|
345 | if ($_POST["mode"] == "set1") { |
---|
346 | $this->tpl_mainpage = 'mypage/set1.tpl'; |
---|
347 | $this->tpl_title = '登録変更(2/3)'; |
---|
348 | } elseif ($_POST["mode"] == "set2") { |
---|
349 | $this->tpl_mainpage = 'mypage/set2.tpl'; |
---|
350 | $this->tpl_title = '登録変更(3/3)'; |
---|
351 | } elseif ($_POST["mode"] == "confirm") { |
---|
352 | //パスワード表示 |
---|
353 | $passlen = strlen($this->arrForm['password']); |
---|
354 | $this->passlen = $this->lfPassLen($passlen); |
---|
355 | |
---|
356 | // メール受け取り |
---|
357 | if (!isset($_POST['mailmaga_flg'])) $_POST['mailmaga_flg'] = ""; |
---|
358 | if (strtolower($_POST['mailmaga_flg']) == "on") { |
---|
359 | $_POST['mailmaga_flg'] = "2"; |
---|
360 | } else { |
---|
361 | $_POST['mailmaga_flg'] = "3"; |
---|
362 | } |
---|
363 | |
---|
364 | $this->tpl_mainpage = 'mypage/change_confirm.tpl'; |
---|
365 | $this->tpl_title = '登録変更(確認ページ)'; |
---|
366 | |
---|
367 | } |
---|
368 | |
---|
369 | //-- データ設定 |
---|
370 | unset($this->list_data); |
---|
371 | if ($_POST["mode"] == "set1") { |
---|
372 | $checkVal = array("sex", "year", "month", "day", "zip01", "zip02"); |
---|
373 | } elseif ($_POST["mode"] == "set2") { |
---|
374 | $checkVal = array("pref", "addr01", "addr02", "tel01", "tel02", "tel03", "mailmaga_flg"); |
---|
375 | } else { |
---|
376 | $checkVal = array(); |
---|
377 | } |
---|
378 | |
---|
379 | foreach($this->arrForm as $key => $val) { |
---|
380 | if ($key != "return" && $key != "mode" && $key != "confirm" && $key != session_name() && !in_array($key, $checkVal)) { |
---|
381 | $this->list_data[ $key ] = $val; |
---|
382 | } |
---|
383 | } |
---|
384 | |
---|
385 | |
---|
386 | //-- 仮登録と完了画面 |
---|
387 | if ($_POST["mode"] == "complete") { |
---|
388 | //エラーなしでかつメールアドレスが重複していない場合 |
---|
389 | if($this->checkErrorTotal($arrRegistColumn, $arrMailType, true)) { |
---|
390 | $this->arrForm['customer_id'] = $this->objCustomer->getValue('customer_id'); |
---|
391 | //-- 編集登録 |
---|
392 | $objDb->sfEditCustomerData($this->arrForm, $arrRegistColumn); |
---|
393 | //セッション情報を最新の状態に更新する |
---|
394 | $this->objCustomer->updateSession(); |
---|
395 | //完了ページへ |
---|
396 | $this->sendRedirect($this->getLocation("./change_complete.php"), true); |
---|
397 | exit; |
---|
398 | } else { |
---|
399 | SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR, "", false, "", true); |
---|
400 | } |
---|
401 | } |
---|
402 | } |
---|
403 | } |
---|
404 | |
---|
405 | $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'); |
---|
406 | foreach ($arrPrivateVariables as $key) { |
---|
407 | unset($this->list_data[$key]); |
---|
408 | } |
---|
409 | |
---|
410 | //---- ページ表示 |
---|
411 | $objView->assignobj($this); |
---|
412 | $objView->display(SITE_FRAME); |
---|
413 | } |
---|
414 | |
---|
415 | /** |
---|
416 | * デストラクタ. |
---|
417 | * |
---|
418 | * @return void |
---|
419 | */ |
---|
420 | function destroy() { |
---|
421 | parent::destroy(); |
---|
422 | } |
---|
423 | |
---|
424 | /** |
---|
425 | * すべてのエラーチェックを行う. |
---|
426 | * |
---|
427 | * @param array $arrRegistColumn 登録カラムの配列 |
---|
428 | * @param array $arrMailType メール種別とフラグを格納した配列 |
---|
429 | * @param bool $isMobile モバイル版登録チェックの場合 true |
---|
430 | * @return bool エラーの無い場合 true |
---|
431 | */ |
---|
432 | function checkErrorTotal(&$arrRegistColumn, &$arrMailType, $isMobile = false) { |
---|
433 | //-- 入力データの変換 |
---|
434 | $this->arrForm = $_POST; |
---|
435 | $this->arrForm = $this->lfConvertParam($this->arrForm, $arrRegistColumn); |
---|
436 | |
---|
437 | // emailはすべて小文字で処理 |
---|
438 | $this->paramToLower($arrRegistColumn); |
---|
439 | |
---|
440 | //エラーチェック |
---|
441 | $this->arrErr = $isMobile |
---|
442 | ? $this->lfErrorCheckMobile($this->arrForm) |
---|
443 | : $this->lfErrorCheck($this->arrForm); |
---|
444 | |
---|
445 | //メールアドレスを変更している場合、メールアドレスの重複チェック |
---|
446 | $arrMailType2 = $arrMailType; |
---|
447 | foreach ($arrMailType as $mailType => $mailTypeValue) { |
---|
448 | |
---|
449 | if ($this->arrForm[$mailType] |
---|
450 | != $this->objCustomer->getValue($mailType)){ |
---|
451 | |
---|
452 | $email_cnt = $this->objQuery->count("dtb_customer", |
---|
453 | "del_flg=0 AND " . $mailType . "= ?", |
---|
454 | array($this->arrForm[$mailType])); |
---|
455 | if ($email_cnt > 0){ |
---|
456 | $arrMailType2[$mailTypeValue] = false; |
---|
457 | $this->arrErr[$mailType] .= "既に使用されているメールアドレスです。"; |
---|
458 | } |
---|
459 | } |
---|
460 | } |
---|
461 | |
---|
462 | // エラーが存在せず, メールアドレスの重複が無い場合は true |
---|
463 | if (empty($this->arrErr) |
---|
464 | && $arrMailType2['email'] == true |
---|
465 | && $arrMailType2['email_mobile'] == true) { |
---|
466 | return true; |
---|
467 | } else { |
---|
468 | return false; |
---|
469 | } |
---|
470 | } |
---|
471 | |
---|
472 | /* パラメータ情報の初期化 */ |
---|
473 | function lfInitParam() { |
---|
474 | $this->objFormParam->addParam("お名前(姓)", "name01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); |
---|
475 | $this->objFormParam->addParam("お名前(名)", "name02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); |
---|
476 | $this->objFormParam->addParam("フリガナ(セイ)", "kana01", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); |
---|
477 | $this->objFormParam->addParam("フリガナ(メイ)", "kana02", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); |
---|
478 | $this->objFormParam->addParam("郵便番号1", "zip01", ZIP01_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); |
---|
479 | $this->objFormParam->addParam("郵便番号2", "zip02", ZIP02_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); |
---|
480 | $this->objFormParam->addParam("都道府県", "pref", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); |
---|
481 | $this->objFormParam->addParam("ご住所1", "addr01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); |
---|
482 | $this->objFormParam->addParam("ご住所2", "addr02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); |
---|
483 | $this->objFormParam->addParam("お電話番号1", "tel01", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); |
---|
484 | $this->objFormParam->addParam("お電話番号2", "tel02", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); |
---|
485 | $this->objFormParam->addParam("お電話番号3", "tel03", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); |
---|
486 | } |
---|
487 | |
---|
488 | //エラーチェック |
---|
489 | |
---|
490 | function lfErrorCheck($array) { |
---|
491 | $objErr = new SC_CheckError($array); |
---|
492 | |
---|
493 | $objErr->doFunc(array("お名前(姓)", 'name01', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); |
---|
494 | $objErr->doFunc(array("お名前(名)", 'name02', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); |
---|
495 | $objErr->doFunc(array("フリガナ(セイ)", 'kana01', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); |
---|
496 | $objErr->doFunc(array("フリガナ(メイ)", 'kana02', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); |
---|
497 | $objErr->doFunc(array("郵便番号1", "zip01", ZIP01_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); |
---|
498 | $objErr->doFunc(array("郵便番号2", "zip02", ZIP02_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); |
---|
499 | $objErr->doFunc(array("郵便番号", "zip01", "zip02"), array("ALL_EXIST_CHECK")); |
---|
500 | $objErr->doFunc(array("都道府県", 'pref'), array("SELECT_CHECK","NUM_CHECK")); |
---|
501 | $objErr->doFunc(array("ご住所1", "addr01", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); |
---|
502 | $objErr->doFunc(array("ご住所2", "addr02", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); |
---|
503 | $objErr->doFunc(array('メールアドレス', "email", MTEXT_LEN) ,array("EXIST_CHECK", "EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); |
---|
504 | $objErr->doFunc(array('メールアドレス(確認)', "email02", MTEXT_LEN) ,array("EXIST_CHECK", "EMAIL_CHECK","NO_SPTAB" , "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); |
---|
505 | $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', "email", "email02") ,array("EQUAL_CHECK")); |
---|
506 | $objErr->doFunc(array('携帯メールアドレス', "email_mobile", MTEXT_LEN) ,array("EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK", "MOBILE_EMAIL_CHECK")); |
---|
507 | $objErr->doFunc(array('携帯メールアドレス(確認)', "email_mobile02", MTEXT_LEN), array("EMAIL_CHECK","NO_SPTAB" , "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK", "MOBILE_EMAIL_CHECK")); |
---|
508 | $objErr->doFunc(array('携帯メールアドレス', '携帯メールアドレス(確認)', "email_mobile", "email_mobile02") ,array("EQUAL_CHECK")); |
---|
509 | $objErr->doFunc(array("お電話番号1", 'tel01'), array("EXIST_CHECK","SPTAB_CHECK")); |
---|
510 | $objErr->doFunc(array("お電話番号2", 'tel02'), array("EXIST_CHECK","SPTAB_CHECK")); |
---|
511 | $objErr->doFunc(array("お電話番号3", 'tel03'), array("EXIST_CHECK","SPTAB_CHECK")); |
---|
512 | $objErr->doFunc(array("お電話番号", "tel01", "tel02", "tel03", TEL_LEN) ,array("TEL_CHECK")); |
---|
513 | $objErr->doFunc(array("FAX番号", "fax01", "fax02", "fax03", TEL_LEN) ,array("TEL_CHECK")); |
---|
514 | $objErr->doFunc(array("ご性別", "sex") ,array("SELECT_CHECK", "NUM_CHECK")); |
---|
515 | $objErr->doFunc(array("ご職業", "job") ,array("NUM_CHECK")); |
---|
516 | $objErr->doFunc(array("生年月日", "year", "month", "day"), array("CHECK_BIRTHDAY")); |
---|
517 | $objErr->doFunc(array("パスワード", 'password', PASSWORD_LEN1, PASSWORD_LEN2), array("EXIST_CHECK", "ALNUM_CHECK", "NUM_RANGE_CHECK")); |
---|
518 | $objErr->doFunc(array("パスワード(確認)", 'password02', PASSWORD_LEN1, PASSWORD_LEN2), array("EXIST_CHECK", "ALNUM_CHECK", "NUM_RANGE_CHECK")); |
---|
519 | $objErr->doFunc(array("パスワード", 'パスワード(確認)', 'password', 'password02'), array("EQUAL_CHECK")); |
---|
520 | $objErr->doFunc(array("パスワードを忘れたときの質問", "reminder") ,array("SELECT_CHECK", "NUM_CHECK")); |
---|
521 | $objErr->doFunc(array("パスワードを忘れたときの答え", "reminder_answer", STEXT_LEN) ,array("EXIST_CHECK", "MAX_LENGTH_CHECK")); |
---|
522 | $objErr->doFunc(array("メールマガジン", "mailmaga_flg") ,array("SELECT_CHECK", "NUM_CHECK")); |
---|
523 | return $objErr->arrErr; |
---|
524 | |
---|
525 | } |
---|
526 | |
---|
527 | //---- 取得文字列の変換 |
---|
528 | function lfConvertParam($array, $arrRegistColumn) { |
---|
529 | /* |
---|
530 | * 文字列の変換 |
---|
531 | * K : 「半角(ハンカク)片仮名」を「全角片仮名」に変換 |
---|
532 | * C : 「全角ひら仮名」を「全角かた仮名」に変換 |
---|
533 | * V : 濁点付きの文字を一文字に変換。"K","H"と共に使用します |
---|
534 | * n : 「全角」数字を「半角(ハンカク)」に変換 |
---|
535 | * a : 全角英数字を半角英数字に変換する |
---|
536 | */ |
---|
537 | // カラム名とコンバート情報 |
---|
538 | foreach ($arrRegistColumn as $data) { |
---|
539 | $arrConvList[ $data["column"] ] = $data["convert"]; |
---|
540 | } |
---|
541 | |
---|
542 | // 文字変換 |
---|
543 | foreach ($arrConvList as $key => $val) { |
---|
544 | // POSTされてきた値のみ変換する。 |
---|
545 | if (isset($array[$key])) { |
---|
546 | if(strlen(($array[$key])) > 0) { |
---|
547 | $array[$key] = mb_convert_kana($array[$key] ,$val); |
---|
548 | } |
---|
549 | } |
---|
550 | } |
---|
551 | return $array; |
---|
552 | } |
---|
553 | |
---|
554 | //顧客情報の取得 |
---|
555 | function lfGetCustomerData(){ |
---|
556 | //顧客情報取得 |
---|
557 | $ret = $this->objQuery->select("*","dtb_customer","customer_id=?", array($this->objCustomer->getValue('customer_id'))); |
---|
558 | $arrForm = $ret[0]; |
---|
559 | |
---|
560 | //誕生日の年月日取得 |
---|
561 | if (isset($arrForm['birth'])){ |
---|
562 | $birth = split(" ", $arrForm["birth"]); |
---|
563 | list($year, $month, $day) = split("-",$birth[0]); |
---|
564 | |
---|
565 | $arrForm['year'] = $year; |
---|
566 | $arrForm['month'] = $month; |
---|
567 | $arrForm['day'] = $day; |
---|
568 | |
---|
569 | } |
---|
570 | return $arrForm; |
---|
571 | } |
---|
572 | |
---|
573 | /** |
---|
574 | * 編集登録 |
---|
575 | * TODO |
---|
576 | * @deprecated 未使用? |
---|
577 | */ |
---|
578 | function lfRegistData($array, $arrRegistColumn) { |
---|
579 | |
---|
580 | foreach ($arrRegistColumn as $data) { |
---|
581 | if ($data["column"] != "password") { |
---|
582 | if($array[ $data['column'] ] == "") { |
---|
583 | $arrRegist[ $data['column'] ] = NULL; |
---|
584 | } else { |
---|
585 | $arrRegist[ $data["column"] ] = $array[ $data["column"] ]; |
---|
586 | } |
---|
587 | } |
---|
588 | } |
---|
589 | if (strlen($array["year"]) > 0 && strlen($array["month"]) > 0 && strlen($array["day"]) > 0) { |
---|
590 | $arrRegist["birth"] = $array["year"] ."/". $array["month"] ."/". $array["day"] ." 00:00:00"; |
---|
591 | } else { |
---|
592 | $arrRegist["birth"] = NULL; |
---|
593 | } |
---|
594 | |
---|
595 | //-- パスワードの更新がある場合は暗号化。(更新がない場合はUPDATE文を構成しない) |
---|
596 | if ($array["password"] != DEFAULT_PASSWORD) $arrRegist["password"] = sha1($array["password"] . ":" . AUTH_MAGIC); |
---|
597 | $arrRegist["update_date"] = "NOW()"; |
---|
598 | |
---|
599 | //-- 編集登録実行 |
---|
600 | $this->objQuery->begin(); |
---|
601 | $this->objQuery->update("dtb_customer", $arrRegist, "customer_id = ? ", array($this->objCustomer->getValue('customer_id'))); |
---|
602 | $this->objQuery->commit(); |
---|
603 | } |
---|
604 | |
---|
605 | //確認ページ用パスワード表示用 |
---|
606 | |
---|
607 | function lfPassLen($passlen){ |
---|
608 | $ret = ""; |
---|
609 | for ($i=0;$i<$passlen;true){ |
---|
610 | $ret.="*"; |
---|
611 | $i++; |
---|
612 | } |
---|
613 | return $ret; |
---|
614 | } |
---|
615 | |
---|
616 | //エラー、戻る時にフォームに入力情報を返す |
---|
617 | function lfFormReturn($array, &$objPage){ |
---|
618 | foreach($array as $key => $val){ |
---|
619 | switch ($key){ |
---|
620 | case 'password': |
---|
621 | case 'password02': |
---|
622 | $objPage->$key = $val; |
---|
623 | break; |
---|
624 | default: |
---|
625 | $array[ $key ] = $val; |
---|
626 | break; |
---|
627 | } |
---|
628 | } |
---|
629 | } |
---|
630 | |
---|
631 | |
---|
632 | // }}} |
---|
633 | // {{{ mobile functions |
---|
634 | |
---|
635 | /** |
---|
636 | * TODO |
---|
637 | * @deprecated 未使用? |
---|
638 | */ |
---|
639 | function lfRegistDataMobile ($array, $arrRegistColumn, |
---|
640 | $arrRejectRegistColumn) { |
---|
641 | |
---|
642 | // 仮登録 |
---|
643 | foreach ($arrRegistColumn as $data) { |
---|
644 | if (strlen($array[ $data["column"] ]) > 0 && ! in_array($data["column"], $arrRejectRegistColumn)) { |
---|
645 | $arrRegist[ $data["column"] ] = $array[ $data["column"] ]; |
---|
646 | } |
---|
647 | } |
---|
648 | |
---|
649 | // 誕生日が入力されている場合 |
---|
650 | if (strlen($array["year"]) > 0 ) { |
---|
651 | $arrRegist["birth"] = $array["year"] ."/". $array["month"] ."/". $array["day"] ." 00:00:00"; |
---|
652 | } |
---|
653 | |
---|
654 | // パスワードの暗号化 |
---|
655 | $arrRegist["password"] = sha1($arrRegist["password"] . ":" . AUTH_MAGIC); |
---|
656 | |
---|
657 | $count = 1; |
---|
658 | while ($count != 0) { |
---|
659 | $uniqid = SC_Utils_Ex::sfGetUniqRandomId("t"); |
---|
660 | $count = $objConn->getOne("SELECT COUNT(*) FROM dtb_customer WHERE secret_key = ?", array($uniqid)); |
---|
661 | } |
---|
662 | |
---|
663 | $arrRegist["secret_key"] = $uniqid; // 仮登録ID発行 |
---|
664 | $arrRegist["create_date"] = "now()"; // 作成日 |
---|
665 | $arrRegist["update_date"] = "now()"; // 更新日 |
---|
666 | $arrRegist["first_buy_date"] = ""; // 最初の購入日 |
---|
667 | |
---|
668 | |
---|
669 | //-- 仮登録実行 |
---|
670 | $this->objQuery->insert("dtb_customer", $arrRegist); |
---|
671 | |
---|
672 | return $uniqid; |
---|
673 | } |
---|
674 | |
---|
675 | |
---|
676 | //エラーチェック |
---|
677 | |
---|
678 | function lfErrorCheckMobile($array) { |
---|
679 | $objErr = new SC_CheckError($array); |
---|
680 | |
---|
681 | $objErr->doFunc(array("お名前(姓)", 'name01', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); |
---|
682 | $objErr->doFunc(array("お名前(名)", 'name02', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); |
---|
683 | $objErr->doFunc(array("お名前(カナ/姓)", 'kana01', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); |
---|
684 | $objErr->doFunc(array("お名前(カナ/名)", 'kana02', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); |
---|
685 | $objErr->doFunc(array("郵便番号1", "zip01", ZIP01_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); |
---|
686 | $objErr->doFunc(array("郵便番号2", "zip02", ZIP02_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); |
---|
687 | $objErr->doFunc(array("郵便番号", "zip01", "zip02"), array("ALL_EXIST_CHECK")); |
---|
688 | $objErr->doFunc(array("都道府県", 'pref'), array("SELECT_CHECK","NUM_CHECK")); |
---|
689 | $objErr->doFunc(array("市区町村", "addr01", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); |
---|
690 | $objErr->doFunc(array("番地", "addr02", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); |
---|
691 | $objErr->doFunc(array('メールアドレス', "email", MTEXT_LEN) ,array("EXIST_CHECK", "EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); |
---|
692 | $objErr->doFunc(array('携帯メールアドレス', "email_mobile", MTEXT_LEN) ,array("EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK", "MOBILE_EMAIL_CHECK")); |
---|
693 | $objErr->doFunc(array("電話番号1", 'tel01'), array("EXIST_CHECK","SPTAB_CHECK")); |
---|
694 | $objErr->doFunc(array("電話番号2", 'tel02'), array("EXIST_CHECK","SPTAB_CHECK")); |
---|
695 | $objErr->doFunc(array("電話番号3", 'tel03'), array("EXIST_CHECK","SPTAB_CHECK")); |
---|
696 | $objErr->doFunc(array("電話番号", "tel01", "tel02", "tel03", TEL_LEN) ,array("TEL_CHECK")); |
---|
697 | $objErr->doFunc(array("FAX番号", "fax01", "fax02", "fax03", TEL_LEN) ,array("TEL_CHECK")); |
---|
698 | $objErr->doFunc(array("性別", "sex") ,array("SELECT_CHECK", "NUM_CHECK")); |
---|
699 | $objErr->doFunc(array("ご職業", "job") ,array("NUM_CHECK")); |
---|
700 | $objErr->doFunc(array("生年月日", "year", "month", "day"), array("CHECK_BIRTHDAY")); |
---|
701 | $objErr->doFunc(array("パスワード", 'password', PASSWORD_LEN1, PASSWORD_LEN2), array("EXIST_CHECK", "ALNUM_CHECK", "NUM_RANGE_CHECK")); |
---|
702 | $objErr->doFunc(array("パスワード確認用の質問", "reminder") ,array("SELECT_CHECK", "NUM_CHECK")); |
---|
703 | $objErr->doFunc(array("パスワード確認用の質問の答え", "reminder_answer", STEXT_LEN) ,array("EXIST_CHECK", "MAX_LENGTH_CHECK")); |
---|
704 | return $objErr->arrErr; |
---|
705 | |
---|
706 | } |
---|
707 | |
---|
708 | |
---|
709 | //---- 入力エラーチェック |
---|
710 | function lfErrorCheck1($array) { |
---|
711 | |
---|
712 | $objErr = new SC_CheckError($array); |
---|
713 | |
---|
714 | $objErr->doFunc(array("お名前(姓)", 'name01', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); |
---|
715 | $objErr->doFunc(array("お名前(名)", 'name02', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" , "MAX_LENGTH_CHECK")); |
---|
716 | $objErr->doFunc(array("お名前(カナ/姓)", 'kana01', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); |
---|
717 | $objErr->doFunc(array("お名前(カナ/名)", 'kana02', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); |
---|
718 | $objErr->doFunc(array('メールアドレス', "email", MTEXT_LEN) ,array("NO_SPTAB", "EXIST_CHECK", "EMAIL_CHECK", "SPTAB_CHECK" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); |
---|
719 | $objErr->doFunc(array('携帯メールアドレス', "email_mobile", MTEXT_LEN) ,array("NO_SPTAB", "EMAIL_CHECK", "SPTAB_CHECK" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK", "MOBILE_EMAIL_CHECK")); |
---|
720 | |
---|
721 | //現会員の判定 → 現会員もしくは仮登録中は、メアド一意が前提になってるので同じメアドで登録不可 |
---|
722 | $array["customer_id"] = $this->objCustomer->getValue('customer_id'); |
---|
723 | if (strlen($array["email"]) > 0) { |
---|
724 | $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"])); |
---|
725 | |
---|
726 | if(count($arrRet) > 0) { |
---|
727 | if($arrRet[0]['del_flg'] != '1') { |
---|
728 | // 会員である場合 |
---|
729 | $objErr->arrErr["email"] .= "※ すでに会員登録で使用されているメールアドレスです。<br />"; |
---|
730 | } else { |
---|
731 | // 退会した会員である場合 |
---|
732 | $leave_time = SC_Utils_Ex::sfDBDatetoTime($arrRet[0]['update_date']); |
---|
733 | $now_time = time(); |
---|
734 | $pass_time = $now_time - $leave_time; |
---|
735 | // 退会から何時間-経過しているか判定する。 |
---|
736 | $limit_time = ENTRY_LIMIT_HOUR * 3600; |
---|
737 | if($pass_time < $limit_time) { |
---|
738 | $objErr->arrErr["email"] .= "※ 退会から一定期間の間は、同じメールアドレスを使用することはできません。<br />"; |
---|
739 | } |
---|
740 | } |
---|
741 | } |
---|
742 | } |
---|
743 | |
---|
744 | $objErr->doFunc(array("パスワード", 'password', PASSWORD_LEN1, PASSWORD_LEN2), array("EXIST_CHECK", "SPTAB_CHECK" ,"ALNUM_CHECK", "NUM_RANGE_CHECK")); |
---|
745 | $objErr->doFunc(array("パスワード確認用の質問", "reminder") ,array("SELECT_CHECK", "NUM_CHECK")); |
---|
746 | $objErr->doFunc(array("パスワード確認用の質問の答え", "reminder_answer", STEXT_LEN) ,array("EXIST_CHECK","SPTAB_CHECK" , "MAX_LENGTH_CHECK")); |
---|
747 | |
---|
748 | return $objErr->arrErr; |
---|
749 | } |
---|
750 | |
---|
751 | //---- 入力エラーチェック |
---|
752 | function lfErrorCheck2($array) { |
---|
753 | |
---|
754 | $objErr = new SC_CheckError($array); |
---|
755 | |
---|
756 | $objErr->doFunc(array("郵便番号1", "zip01", ZIP01_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); |
---|
757 | $objErr->doFunc(array("郵便番号2", "zip02", ZIP02_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); |
---|
758 | $objErr->doFunc(array("郵便番号", "zip01", "zip02"), array("ALL_EXIST_CHECK")); |
---|
759 | |
---|
760 | $objErr->doFunc(array("性別", "sex") ,array("SELECT_CHECK", "NUM_CHECK")); |
---|
761 | $objErr->doFunc(array("生年月日", "year", "month", "day"), array("CHECK_BIRTHDAY")); |
---|
762 | |
---|
763 | return $objErr->arrErr; |
---|
764 | } |
---|
765 | |
---|
766 | //---- 入力エラーチェック |
---|
767 | function lfErrorCheck3($array) { |
---|
768 | |
---|
769 | $objErr = new SC_CheckError($array); |
---|
770 | |
---|
771 | $objErr->doFunc(array("都道府県", 'pref'), array("SELECT_CHECK","NUM_CHECK")); |
---|
772 | $objErr->doFunc(array("市区町村", "addr01", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); |
---|
773 | $objErr->doFunc(array("番地", "addr02", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); |
---|
774 | $objErr->doFunc(array("電話番号1", 'tel01'), array("EXIST_CHECK","SPTAB_CHECK" )); |
---|
775 | $objErr->doFunc(array("電話番号2", 'tel02'), array("EXIST_CHECK","SPTAB_CHECK" )); |
---|
776 | $objErr->doFunc(array("電話番号3", 'tel03'), array("EXIST_CHECK","SPTAB_CHECK" )); |
---|
777 | $objErr->doFunc(array("電話番号", "tel01", "tel02", "tel03",TEL_ITEM_LEN) ,array("TEL_CHECK")); |
---|
778 | |
---|
779 | return $objErr->arrErr; |
---|
780 | } |
---|
781 | |
---|
782 | // 郵便番号から住所の取得 |
---|
783 | function lfGetAddress($zipcode) { |
---|
784 | global $arrPref; |
---|
785 | |
---|
786 | $conn = new SC_DBconn(ZIP_DSN); |
---|
787 | |
---|
788 | // 郵便番号検索文作成 |
---|
789 | $zipcode = mb_convert_kana($zipcode ,"n"); |
---|
790 | $sqlse = "SELECT state, city, town FROM mtb_zip WHERE zipcode = ?"; |
---|
791 | |
---|
792 | $data_list = $conn->getAll($sqlse, array($zipcode)); |
---|
793 | |
---|
794 | // インデックスと値を反転させる。 |
---|
795 | $arrREV_PREF = array_flip($arrPref); |
---|
796 | |
---|
797 | /* |
---|
798 | 総務省からダウンロードしたデータをそのままインポートすると |
---|
799 | 以下のような文字列が入っているので 対策する。 |
---|
800 | ・(1・19丁目) |
---|
801 | ・以下に掲載がない場合 |
---|
802 | */ |
---|
803 | $town = $data_list[0]['town']; |
---|
804 | $town = ereg_replace("(.*)$","",$town); |
---|
805 | $town = ereg_replace("以下に掲載がない場合","",$town); |
---|
806 | $data_list[0]['town'] = $town; |
---|
807 | $data_list[0]['state'] = $arrREV_PREF[$data_list[0]['state']]; |
---|
808 | |
---|
809 | return $data_list; |
---|
810 | } |
---|
811 | |
---|
812 | //顧客情報の取得 |
---|
813 | function lfGetCustomerDataMobile(){ |
---|
814 | |
---|
815 | //顧客情報取得 |
---|
816 | $ret = $this->objQuery->select("*","dtb_customer","customer_id=?", array($this->objCustomer->getValue('customer_id'))); |
---|
817 | $arrForm = $ret[0]; |
---|
818 | //$arrForm['email'] = $arrForm['email_mobile']; |
---|
819 | |
---|
820 | //メルマガフラグ取得 |
---|
821 | // TODO たぶん未使用 |
---|
822 | $arrForm['mailmaga_flg'] = $this->objQuery->get("dtb_customer","mailmaga_flg","email_mobile=?", array($this->objCustomer->getValue('email_mobile'))); |
---|
823 | |
---|
824 | //誕生日の年月日取得 |
---|
825 | if (isset($arrForm['birth'])){ |
---|
826 | $birth = split(" ", $arrForm["birth"]); |
---|
827 | list($year, $month, $day) = split("-",$birth[0]); |
---|
828 | |
---|
829 | $arrForm['year'] = $year; |
---|
830 | $arrForm['month'] = $month; |
---|
831 | $arrForm['day'] = $day; |
---|
832 | |
---|
833 | } |
---|
834 | return $arrForm; |
---|
835 | } |
---|
836 | |
---|
837 | /** |
---|
838 | * フォームパラメータの内容を小文字に変換する. |
---|
839 | * |
---|
840 | * @param array $arrParam パラメータ名の配列 |
---|
841 | * @return void |
---|
842 | */ |
---|
843 | function paramToLower(&$arrParam) { |
---|
844 | foreach ($arrParam as $key => $val) { |
---|
845 | if (!isset($val)) { |
---|
846 | $this->arrForm[$key] = ""; |
---|
847 | }elseif($key == 'email' || $key == 'email_mobile'){ |
---|
848 | $this->arrForm[$key] = strtolower($val); |
---|
849 | } |
---|
850 | } |
---|
851 | } |
---|
852 | } |
---|
853 | ?> |
---|