1 | <?php
|
---|
2 | /**
|
---|
3 | *
|
---|
4 | * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
|
---|
5 | *
|
---|
6 | * http://www.lockon.co.jp/
|
---|
7 | *
|
---|
8 | *
|
---|
9 | * 情報変更
|
---|
10 | */
|
---|
11 |
|
---|
12 | require_once("../require.php");
|
---|
13 |
|
---|
14 | class LC_Page {
|
---|
15 | function LC_Page() {
|
---|
16 | $this->tpl_mainpage = 'mypage/change.tpl'; // メインテンプレート
|
---|
17 | $this->tpl_title .= '登録変更(1/3)'; // ページタイトル
|
---|
18 | }
|
---|
19 | }
|
---|
20 |
|
---|
21 | //---- ページ初期設定
|
---|
22 | $CONF = sf_getBasisData(); // 店舗基本情報
|
---|
23 | $objConn = new SC_DbConn();
|
---|
24 | $objPage = new LC_Page();
|
---|
25 | $objView = new SC_MobileView();
|
---|
26 | $objDate = new SC_Date(START_BIRTH_YEAR, date("Y",strtotime("now")));
|
---|
27 | $objQuery = new SC_Query();
|
---|
28 | $objCustomer = new SC_Customer();
|
---|
29 | $objPage->arrPref = $arrPref;
|
---|
30 | $objPage->arrJob = $arrJob;
|
---|
31 | $objPage->arrReminder = $arrReminder;
|
---|
32 | $objPage->arrYear = $objDate->getYear('', 1950); // 日付プルダウン設定
|
---|
33 | $objPage->arrMonth = $objDate->getMonth();
|
---|
34 | $objPage->arrDay = $objDate->getDay();
|
---|
35 |
|
---|
36 | // レイアウトデザインを取得
|
---|
37 | $objPage = sfGetPageLayout($objPage, false, DEF_LAYOUT);
|
---|
38 |
|
---|
39 | //---- 登録用カラム配列
|
---|
40 | $arrRegistColumn = array(
|
---|
41 | array( "column" => "name01", "convert" => "aKV" ),
|
---|
42 | array( "column" => "name02", "convert" => "aKV" ),
|
---|
43 | array( "column" => "kana01", "convert" => "CKV" ),
|
---|
44 | array( "column" => "kana02", "convert" => "CKV" ),
|
---|
45 | array( "column" => "zip01", "convert" => "n" ),
|
---|
46 | array( "column" => "zip02", "convert" => "n" ),
|
---|
47 | array( "column" => "pref", "convert" => "n" ),
|
---|
48 | array( "column" => "addr01", "convert" => "aKV" ),
|
---|
49 | array( "column" => "addr02", "convert" => "aKV" ),
|
---|
50 | array( "column" => "email", "convert" => "a" ),
|
---|
51 | array( "column" => "email_mobile", "convert" => "a" ),
|
---|
52 | array( "column" => "tel01", "convert" => "n" ),
|
---|
53 | array( "column" => "tel02", "convert" => "n" ),
|
---|
54 | array( "column" => "tel03", "convert" => "n" ),
|
---|
55 | array( "column" => "fax01", "convert" => "n" ),
|
---|
56 | array( "column" => "fax02", "convert" => "n" ),
|
---|
57 | array( "column" => "fax03", "convert" => "n" ),
|
---|
58 | array( "column" => "sex", "convert" => "n" ),
|
---|
59 | array( "column" => "job", "convert" => "n" ),
|
---|
60 | array( "column" => "birth", "convert" => "n" ),
|
---|
61 | array( "column" => "reminder", "convert" => "n" ),
|
---|
62 | array( "column" => "reminder_answer", "convert" => "aKV"),
|
---|
63 | array( "column" => "password", "convert" => "a" ),
|
---|
64 | array( "column" => "mailmaga_flg", "convert" => "n" )
|
---|
65 | );
|
---|
66 |
|
---|
67 | //---- 登録除外用カラム配列
|
---|
68 | $arrRejectRegistColumn = array("year", "month", "day", "email02", "email_mobile02", "password02");
|
---|
69 |
|
---|
70 | $objPage->arrForm = lfGetCustomerData();
|
---|
71 | $objPage->arrForm['password'] = DEFAULT_PASSWORD;
|
---|
72 |
|
---|
73 | if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
---|
74 |
|
---|
75 | //-- POSTデータの引き継ぎ
|
---|
76 | $objPage->arrForm = array_merge($objPage->arrForm, $_POST);
|
---|
77 |
|
---|
78 | if($objPage->arrForm['year'] == '----') {
|
---|
79 | $objPage->arrForm['year'] = '';
|
---|
80 | }
|
---|
81 |
|
---|
82 | $objPage->arrForm['email'] = strtolower($objPage->arrForm['email']); // emailはすべて小文字で処理
|
---|
83 |
|
---|
84 | //-- 入力データの変換
|
---|
85 | $objPage->arrForm = lfConvertParam($objPage->arrForm, $arrRegistColumn);
|
---|
86 |
|
---|
87 | // 戻るボタン用処理
|
---|
88 | if (!empty($_POST["return"])) {
|
---|
89 | switch ($_POST["mode"]) {
|
---|
90 | case "complete":
|
---|
91 | $_POST["mode"] = "set3";
|
---|
92 | break;
|
---|
93 | case "confirm":
|
---|
94 | $_POST["mode"] = "set2";
|
---|
95 | break;
|
---|
96 | default:
|
---|
97 | $_POST["mode"] = "set1";
|
---|
98 | break;
|
---|
99 | }
|
---|
100 | }
|
---|
101 |
|
---|
102 | //-- 入力エラーチェック
|
---|
103 | if ($_POST["mode"] == "set1") {
|
---|
104 | $objPage->arrErr = lfErrorCheck1($objPage->arrForm);
|
---|
105 | $objPage->tpl_mainpage = 'mypage/change.tpl';
|
---|
106 | $objPage->tpl_title = '登録変更(1/3)';
|
---|
107 | } elseif ($_POST["mode"] == "set2") {
|
---|
108 | $objPage->arrErr = lfErrorCheck2($objPage->arrForm);
|
---|
109 | $objPage->tpl_mainpage = 'mypage/set1.tpl';
|
---|
110 | $objPage->tpl_title = '登録変更(2/3)';
|
---|
111 | } else {
|
---|
112 | $objPage->arrErr = lfErrorCheck3($objPage->arrForm);
|
---|
113 | $objPage->tpl_mainpage = 'mypage/set2.tpl';
|
---|
114 | $objPage->tpl_title = '登録変更(3/3)';
|
---|
115 | }
|
---|
116 |
|
---|
117 | if ($objPage->arrErr || !empty($_POST["return"])) { // 入力エラーのチェック
|
---|
118 | foreach($objPage->arrForm as $key => $val) {
|
---|
119 | $objPage->$key = $val;
|
---|
120 | }
|
---|
121 |
|
---|
122 | //-- データの設定
|
---|
123 | if ($_POST["mode"] == "set1") {
|
---|
124 | $checkVal = array("email", "password", "reminder", "reminder_answer", "name01", "name02", "kana01", "kana02");
|
---|
125 | } elseif ($_POST["mode"] == "set2") {
|
---|
126 | $checkVal = array("sex", "year", "month", "day", "zip01", "zip02");
|
---|
127 | } else {
|
---|
128 | $checkVal = array("pref", "addr01", "addr02", "tel01", "tel02", "tel03", "mail_flag");
|
---|
129 | }
|
---|
130 |
|
---|
131 | foreach($objPage->arrForm as $key => $val) {
|
---|
132 | if ($key != "return" && $key != "mode" && $key != "confirm" && $key != session_name() && !in_array($key, $checkVal)) {
|
---|
133 | $objPage->list_data[ $key ] = $val;
|
---|
134 | }
|
---|
135 | }
|
---|
136 |
|
---|
137 | } else {
|
---|
138 |
|
---|
139 | //-- テンプレート設定
|
---|
140 | if ($_POST["mode"] == "set1") {
|
---|
141 | $objPage->tpl_mainpage = 'mypage/set1.tpl';
|
---|
142 | $objPage->tpl_title = '登録変更(2/3)';
|
---|
143 | } elseif ($_POST["mode"] == "set2") {
|
---|
144 | $objPage->tpl_mainpage = 'mypage/set2.tpl';
|
---|
145 | $objPage->tpl_title = '登録変更(3/3)';
|
---|
146 | } elseif ($_POST["mode"] == "confirm") {
|
---|
147 | //パスワード表示
|
---|
148 | $passlen = strlen($objPage->arrForm['password']);
|
---|
149 | $objPage->passlen = lfPassLen($passlen);
|
---|
150 |
|
---|
151 | // メール受け取り
|
---|
152 | if (strtolower($_POST['mailmaga_flg']) == "on") {
|
---|
153 | $_POST['mailmaga_flg'] = "2";
|
---|
154 | } else {
|
---|
155 | $_POST['mailmaga_flg'] = "3";
|
---|
156 | }
|
---|
157 |
|
---|
158 | $objPage->tpl_mainpage = 'mypage/change_confirm.tpl';
|
---|
159 | $objPage->tpl_title = '登録変更(確認ページ)';
|
---|
160 |
|
---|
161 | }
|
---|
162 |
|
---|
163 | //-- データ設定
|
---|
164 | unset($objPage->list_data);
|
---|
165 | if ($_POST["mode"] == "set1") {
|
---|
166 | $checkVal = array("sex", "year", "month", "day", "zip01", "zip02");
|
---|
167 | } elseif ($_POST["mode"] == "set2") {
|
---|
168 | $checkVal = array("pref", "addr01", "addr02", "tel01", "tel02", "tel03", "mail_flag");
|
---|
169 | } else {
|
---|
170 | $checkVal = array();
|
---|
171 | }
|
---|
172 |
|
---|
173 | foreach($_POST as $key => $val) {
|
---|
174 | if ($key != "return" && $key != "mode" && $key != "confirm" && $key != session_name() && !in_array($key, $checkVal)) {
|
---|
175 | $objPage->list_data[ $key ] = $val;
|
---|
176 | }
|
---|
177 | }
|
---|
178 |
|
---|
179 |
|
---|
180 | //-- 仮登録と完了画面
|
---|
181 | if ($_POST["mode"] == "complete") {
|
---|
182 |
|
---|
183 | //-- 入力データの変換
|
---|
184 | $arrForm = lfConvertParam($_POST, $arrRegistColumn);
|
---|
185 | $arrForm['email'] = strtolower($arrForm['email']); // emailはすべて小文字で処理
|
---|
186 |
|
---|
187 | //エラーチェック
|
---|
188 | $objPage->arrErr = lfErrorCheck($objPage->arrForm);
|
---|
189 | $email_flag = true;
|
---|
190 |
|
---|
191 | if($objPage->arrForm['email'] != $objCustomer->getValue('email_mobile')) {
|
---|
192 | //メールアドレスの重複チェック
|
---|
193 | $email_cnt = $objQuery->count("dtb_customer","del_flg=0 AND (email=? OR email_mobile=?)", array($objPage->arrForm['email'], $objPage->arrForm['email']));
|
---|
194 | if ($email_cnt > 0){
|
---|
195 | $email_flag = false;
|
---|
196 | }
|
---|
197 | }
|
---|
198 |
|
---|
199 | //エラーなしでかつメールアドレスが重複していない場合
|
---|
200 | if($objPage->arrErr == "" && $email_flag) {
|
---|
201 | $arrForm['customer_id'] = $objCustomer->getValue('customer_id');
|
---|
202 | //-- 編集登録
|
---|
203 | sfEditCustomerData($arrForm, $arrRegistColumn);
|
---|
204 | //セッション情報を最新の状態に更新する
|
---|
205 | $objCustomer->updateSession();
|
---|
206 | //完了ページへ
|
---|
207 | header("Location: " . gfAddSessionId("change_complete.php"));
|
---|
208 | exit;
|
---|
209 | } else {
|
---|
210 | sfDispSiteError(CUSTOMER_ERROR, "", false, "", true);
|
---|
211 | }
|
---|
212 |
|
---|
213 | }
|
---|
214 | }
|
---|
215 | }
|
---|
216 |
|
---|
217 | $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');
|
---|
218 | foreach ($arrPrivateVariables as $key) {
|
---|
219 | unset($objPage->list_data[$key]);
|
---|
220 | }
|
---|
221 |
|
---|
222 | //---- ページ表示
|
---|
223 | $objView->assignobj($objPage);
|
---|
224 | $objView->display(SITE_FRAME);
|
---|
225 |
|
---|
226 | //----------------------------------------------------------------------------------------------------------------------
|
---|
227 |
|
---|
228 | //---- function群
|
---|
229 | function lfRegistData ($array, $arrRegistColumn, $arrRejectRegistColumn) {
|
---|
230 | global $objConn;
|
---|
231 |
|
---|
232 | // 仮登録
|
---|
233 | foreach ($arrRegistColumn as $data) {
|
---|
234 | if (strlen($array[ $data["column"] ]) > 0 && ! in_array($data["column"], $arrRejectRegistColumn)) {
|
---|
235 | $arrRegist[ $data["column"] ] = $array[ $data["column"] ];
|
---|
236 | }
|
---|
237 | }
|
---|
238 |
|
---|
239 | // 誕生日が入力されている場合
|
---|
240 | if (strlen($array["year"]) > 0 ) {
|
---|
241 | $arrRegist["birth"] = $array["year"] ."/". $array["month"] ."/". $array["day"] ." 00:00:00";
|
---|
242 | }
|
---|
243 |
|
---|
244 | // パスワードの暗号化
|
---|
245 | $arrRegist["password"] = sha1($arrRegist["password"] . ":" . AUTH_MAGIC);
|
---|
246 |
|
---|
247 | $count = 1;
|
---|
248 | while ($count != 0) {
|
---|
249 | $uniqid = sfGetUniqRandomId("t");
|
---|
250 | $count = $objConn->getOne("SELECT COUNT(*) FROM dtb_customer WHERE secret_key = ?", array($uniqid));
|
---|
251 | }
|
---|
252 |
|
---|
253 | $arrRegist["secret_key"] = $uniqid; // 仮登録ID発行
|
---|
254 | $arrRegist["create_date"] = "now()"; // 作成日
|
---|
255 | $arrRegist["update_date"] = "now()"; // 更新日
|
---|
256 | $arrRegist["first_buy_date"] = ""; // 最初の購入日
|
---|
257 |
|
---|
258 | // 携帯メールアドレス
|
---|
259 | $arrRegist['email_mobile'] = $arrRegist['email'];
|
---|
260 |
|
---|
261 | //-- 仮登録実行
|
---|
262 | $objConn->query("BEGIN");
|
---|
263 |
|
---|
264 | $objQuery = new SC_Query();
|
---|
265 | $objQuery->insert("dtb_customer", $arrRegist);
|
---|
266 | $objConn->query("COMMIT");
|
---|
267 |
|
---|
268 | return $uniqid;
|
---|
269 | }
|
---|
270 |
|
---|
271 | //---- 取得文字列の変換
|
---|
272 | function lfConvertParam($array, $arrRegistColumn) {
|
---|
273 | /*
|
---|
274 | * 文字列の変換
|
---|
275 | * K : 「半角(ハンカク)片仮名」を「全角片仮名」に変換
|
---|
276 | * C : 「全角ひら仮名」を「全角かた仮名」に変換
|
---|
277 | * V : 濁点付きの文字を一文字に変換。"K","H"と共に使用します
|
---|
278 | * n : 「全角」数字を「半角(ハンカク)」に変換
|
---|
279 | * a : 全角英数字を半角英数字に変換する
|
---|
280 | */
|
---|
281 | // カラム名とコンバート情報
|
---|
282 | foreach ($arrRegistColumn as $data) {
|
---|
283 | $arrConvList[ $data["column"] ] = $data["convert"];
|
---|
284 | }
|
---|
285 | // 文字変換
|
---|
286 | foreach ($arrConvList as $key => $val) {
|
---|
287 | // POSTされてきた値のみ変換する。
|
---|
288 | if(strlen(($array[$key])) > 0) {
|
---|
289 | $array[$key] = mb_convert_kana($array[$key] ,$val);
|
---|
290 | }
|
---|
291 | }
|
---|
292 | return $array;
|
---|
293 | }
|
---|
294 |
|
---|
295 |
|
---|
296 | //エラーチェック
|
---|
297 |
|
---|
298 | function lfErrorCheck($array) {
|
---|
299 | $objErr = new SC_CheckError($array);
|
---|
300 |
|
---|
301 | $objErr->doFunc(array("お名前(姓)", 'name01', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
|
---|
302 | $objErr->doFunc(array("お名前(名)", 'name02', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
|
---|
303 | $objErr->doFunc(array("お名前(カナ/姓)", 'kana01', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK"));
|
---|
304 | $objErr->doFunc(array("お名前(カナ/名)", 'kana02', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK"));
|
---|
305 | $objErr->doFunc(array("郵便番号1", "zip01", ZIP01_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK"));
|
---|
306 | $objErr->doFunc(array("郵便番号2", "zip02", ZIP02_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK"));
|
---|
307 | $objErr->doFunc(array("郵便番号", "zip01", "zip02"), array("ALL_EXIST_CHECK"));
|
---|
308 | $objErr->doFunc(array("都道府県", 'pref'), array("SELECT_CHECK","NUM_CHECK"));
|
---|
309 | $objErr->doFunc(array("市区町村", "addr01", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
|
---|
310 | $objErr->doFunc(array("番地", "addr02", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
|
---|
311 | $objErr->doFunc(array('メールアドレス', "email", MTEXT_LEN) ,array("EXIST_CHECK", "EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK"));
|
---|
312 | $objErr->doFunc(array("電話番号1", 'tel01'), array("EXIST_CHECK","SPTAB_CHECK"));
|
---|
313 | $objErr->doFunc(array("電話番号2", 'tel02'), array("EXIST_CHECK","SPTAB_CHECK"));
|
---|
314 | $objErr->doFunc(array("電話番号3", 'tel03'), array("EXIST_CHECK","SPTAB_CHECK"));
|
---|
315 | $objErr->doFunc(array("電話番号", "tel01", "tel02", "tel03", TEL_LEN) ,array("TEL_CHECK"));
|
---|
316 | $objErr->doFunc(array("FAX番号", "fax01", "fax02", "fax03", TEL_LEN) ,array("TEL_CHECK"));
|
---|
317 | $objErr->doFunc(array("性別", "sex") ,array("SELECT_CHECK", "NUM_CHECK"));
|
---|
318 | $objErr->doFunc(array("ご職業", "job") ,array("NUM_CHECK"));
|
---|
319 | $objErr->doFunc(array("生年月日", "year", "month", "day"), array("CHECK_DATE"));
|
---|
320 | $objErr->doFunc(array("パスワード", 'password', PASSWORD_LEN1, PASSWORD_LEN2), array("EXIST_CHECK", "ALNUM_CHECK", "NUM_RANGE_CHECK"));
|
---|
321 | $objErr->doFunc(array("パスワード確認用の質問", "reminder") ,array("SELECT_CHECK", "NUM_CHECK"));
|
---|
322 | $objErr->doFunc(array("パスワード確認用の質問の答え", "reminder_answer", STEXT_LEN) ,array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
|
---|
323 | return $objErr->arrErr;
|
---|
324 |
|
---|
325 | }
|
---|
326 |
|
---|
327 | //---- 入力エラーチェック
|
---|
328 | function lfErrorCheck1($array) {
|
---|
329 |
|
---|
330 | global $objConn;
|
---|
331 | global $objCustomer;
|
---|
332 | $objErr = new SC_CheckError($array);
|
---|
333 |
|
---|
334 | $objErr->doFunc(array("お名前(姓)", 'name01', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
|
---|
335 | $objErr->doFunc(array("お名前(名)", 'name02', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" , "MAX_LENGTH_CHECK"));
|
---|
336 | $objErr->doFunc(array("お名前(カナ/姓)", 'kana01', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK"));
|
---|
337 | $objErr->doFunc(array("お名前(カナ/名)", 'kana02', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK"));
|
---|
338 | $objErr->doFunc(array('メールアドレス', "email", MTEXT_LEN) ,array("NO_SPTAB", "EXIST_CHECK", "EMAIL_CHECK", "SPTAB_CHECK" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK", "MOBILE_EMAIL_CHECK"));
|
---|
339 |
|
---|
340 | //現会員の判定 → 現会員もしくは仮登録中は、メアド一意が前提になってるので同じメアドで登録不可
|
---|
341 | $array["customer_id"] = $objCustomer->getValue('customer_id');
|
---|
342 | if (strlen($array["email"]) > 0) {
|
---|
343 | $objQuery = new SC_Query();
|
---|
344 | $arrRet = $objQuery->select("email, update_date, del_flg", "dtb_customer","customer_id <> ? and (email ILIKE ? OR email_mobile ILIKE ?) ORDER BY del_flg", array($array["customer_id"], $array["email"], $array["email"]));
|
---|
345 |
|
---|
346 | if(count($arrRet) > 0) {
|
---|
347 | if($arrRet[0]['del_flg'] != '1') {
|
---|
348 | // 会員である場合
|
---|
349 | $objErr->arrErr["email"] .= "※ すでに会員登録で使用されているメールアドレスです。<br />";
|
---|
350 | } else {
|
---|
351 | // 退会した会員である場合
|
---|
352 | $leave_time = sfDBDatetoTime($arrRet[0]['update_date']);
|
---|
353 | $now_time = time();
|
---|
354 | $pass_time = $now_time - $leave_time;
|
---|
355 | // 退会から何時間-経過しているか判定する。
|
---|
356 | $limit_time = ENTRY_LIMIT_HOUR * 3600;
|
---|
357 | if($pass_time < $limit_time) {
|
---|
358 | $objErr->arrErr["email"] .= "※ 退会から一定期間の間は、同じメールアドレスを使用することはできません。<br />";
|
---|
359 | }
|
---|
360 | }
|
---|
361 | }
|
---|
362 | }
|
---|
363 |
|
---|
364 | $objErr->doFunc(array("パスワード", 'password', PASSWORD_LEN1, PASSWORD_LEN2), array("EXIST_CHECK", "SPTAB_CHECK" ,"ALNUM_CHECK", "NUM_RANGE_CHECK"));
|
---|
365 | $objErr->doFunc(array("パスワード確認用の質問", "reminder") ,array("SELECT_CHECK", "NUM_CHECK"));
|
---|
366 | $objErr->doFunc(array("パスワード確認用の質問の答え", "reminder_answer", STEXT_LEN) ,array("EXIST_CHECK","SPTAB_CHECK" , "MAX_LENGTH_CHECK"));
|
---|
367 |
|
---|
368 | return $objErr->arrErr;
|
---|
369 | }
|
---|
370 |
|
---|
371 | //---- 入力エラーチェック
|
---|
372 | function lfErrorCheck2($array) {
|
---|
373 |
|
---|
374 | global $objConn, $objDate;
|
---|
375 | $objErr = new SC_CheckError($array);
|
---|
376 |
|
---|
377 | $objErr->doFunc(array("郵便番号1", "zip01", ZIP01_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK"));
|
---|
378 | $objErr->doFunc(array("郵便番号2", "zip02", ZIP02_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK"));
|
---|
379 | $objErr->doFunc(array("郵便番号", "zip01", "zip02"), array("ALL_EXIST_CHECK"));
|
---|
380 |
|
---|
381 | $objErr->doFunc(array("性別", "sex") ,array("SELECT_CHECK", "NUM_CHECK"));
|
---|
382 | $objErr->doFunc(array("生年月日 (年)", "year", 4), array("EXIST_CHECK", "SPTAB_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK"));
|
---|
383 | if (!isset($objErr->arrErr['year'])) {
|
---|
384 | $objErr->doFunc(array("生年月日 (年)", "year", $objDate->getStartYear()), array("MIN_CHECK"));
|
---|
385 | $objErr->doFunc(array("生年月日 (年)", "year", $objDate->getEndYear()), array("MAX_CHECK"));
|
---|
386 | }
|
---|
387 | $objErr->doFunc(array("生年月日 (月日)", "month", "day"), array("SELECT_CHECK"));
|
---|
388 | if (!isset($objErr->arrErr['year']) && !isset($objErr->arrErr['month']) && !isset($objErr->arrErr['day'])) {
|
---|
389 | $objErr->doFunc(array("生年月日", "year", "month", "day"), array("CHECK_DATE"));
|
---|
390 | }
|
---|
391 |
|
---|
392 | return $objErr->arrErr;
|
---|
393 | }
|
---|
394 |
|
---|
395 | //---- 入力エラーチェック
|
---|
396 | function lfErrorCheck3($array) {
|
---|
397 |
|
---|
398 | global $objConn;
|
---|
399 | $objErr = new SC_CheckError($array);
|
---|
400 |
|
---|
401 | $objErr->doFunc(array("都道府県", 'pref'), array("SELECT_CHECK","NUM_CHECK"));
|
---|
402 | $objErr->doFunc(array("市区町村", "addr01", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
|
---|
403 | $objErr->doFunc(array("番地", "addr02", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
|
---|
404 | $objErr->doFunc(array("電話番号1", 'tel01'), array("EXIST_CHECK","SPTAB_CHECK" ));
|
---|
405 | $objErr->doFunc(array("電話番号2", 'tel02'), array("EXIST_CHECK","SPTAB_CHECK" ));
|
---|
406 | $objErr->doFunc(array("電話番号3", 'tel03'), array("EXIST_CHECK","SPTAB_CHECK" ));
|
---|
407 | $objErr->doFunc(array("電話番号", "tel01", "tel02", "tel03",TEL_ITEM_LEN) ,array("TEL_CHECK"));
|
---|
408 |
|
---|
409 | return $objErr->arrErr;
|
---|
410 | }
|
---|
411 |
|
---|
412 | //確認ページ用パスワード表示用
|
---|
413 |
|
---|
414 | function lfPassLen($passlen){
|
---|
415 | $ret = "";
|
---|
416 | for ($i=0;$i<$passlen;true){
|
---|
417 | $ret.="*";
|
---|
418 | $i++;
|
---|
419 | }
|
---|
420 | return $ret;
|
---|
421 | }
|
---|
422 |
|
---|
423 |
|
---|
424 | // 郵便番号から住所の取得
|
---|
425 | function lfGetAddress($zipcode) {
|
---|
426 | global $arrPref;
|
---|
427 |
|
---|
428 | $conn = new SC_DBconn(ZIP_DSN);
|
---|
429 |
|
---|
430 | // 郵便番号検索文作成
|
---|
431 | $zipcode = mb_convert_kana($zipcode ,"n");
|
---|
432 | $sqlse = "SELECT state, city, town FROM mtb_zip WHERE zipcode = ?";
|
---|
433 |
|
---|
434 | $data_list = $conn->getAll($sqlse, array($zipcode));
|
---|
435 |
|
---|
436 | // インデックスと値を反転させる。
|
---|
437 | $arrREV_PREF = array_flip($arrPref);
|
---|
438 |
|
---|
439 | /*
|
---|
440 | 総務省からダウンロードしたデータをそのままインポートすると
|
---|
441 | 以下のような文字列が入っているので 対策する。
|
---|
442 | ・(1・19丁目)
|
---|
443 | ・以下に掲載がない場合
|
---|
444 | */
|
---|
445 | $town = $data_list[0]['town'];
|
---|
446 | $town = ereg_replace("(.*)$","",$town);
|
---|
447 | $town = ereg_replace("以下に掲載がない場合","",$town);
|
---|
448 | $data_list[0]['town'] = $town;
|
---|
449 | $data_list[0]['state'] = $arrREV_PREF[$data_list[0]['state']];
|
---|
450 |
|
---|
451 | return $data_list;
|
---|
452 | }
|
---|
453 |
|
---|
454 | //顧客情報の取得
|
---|
455 | function lfGetCustomerData(){
|
---|
456 | global $objQuery;
|
---|
457 | global $objCustomer;
|
---|
458 | //顧客情報取得
|
---|
459 | $ret = $objQuery->select("*","dtb_customer","customer_id=?", array($objCustomer->getValue('customer_id')));
|
---|
460 | $arrForm = $ret[0];
|
---|
461 | $arrForm['email'] = $arrForm['email_mobile'];
|
---|
462 |
|
---|
463 | //メルマガフラグ取得
|
---|
464 | $arrForm['mailmaga_flg'] = $objQuery->get("dtb_customer","mailmaga_flg","email=?", array($objCustomer->getValue('email_mobile')));
|
---|
465 |
|
---|
466 | //誕生日の年月日取得
|
---|
467 | if (isset($arrForm['birth'])){
|
---|
468 | $birth = split(" ", $arrForm["birth"]);
|
---|
469 | list($year, $month, $day) = split("-",$birth[0]);
|
---|
470 |
|
---|
471 | $arrForm['year'] = $year;
|
---|
472 | $arrForm['month'] = $month;
|
---|
473 | $arrForm['day'] = $day;
|
---|
474 |
|
---|
475 | }
|
---|
476 | return $arrForm;
|
---|
477 | }
|
---|
478 |
|
---|
479 |
|
---|
480 | //-----------------------------------------------------------------------------------------------------------------------------------
|
---|
481 | ?>
|
---|