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