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 | require_once("../require.php");
|
---|
11 |
|
---|
12 | class LC_Page {
|
---|
13 | var $arrSession;
|
---|
14 | var $tpl_mode;
|
---|
15 | var $arrAddr;
|
---|
16 | function LC_Page() {
|
---|
17 | $this->tpl_mainpage = 'shopping/deliv.tpl';
|
---|
18 | $this->tpl_css = '/css/layout/shopping/index.css';
|
---|
19 | global $arrPref;
|
---|
20 | $this->arrPref = $arrPref;
|
---|
21 | $this->tpl_title = "お届け先指定"; // タイトル
|
---|
22 |
|
---|
23 | /*
|
---|
24 | session_start時のno-cacheヘッダーを抑制することで
|
---|
25 | 「戻る」ボタン使用時の有効期限切れ表示を抑制する。
|
---|
26 | private-no-expire:クライアントのキャッシュを許可する。
|
---|
27 | */
|
---|
28 | session_cache_limiter('private-no-expire');
|
---|
29 |
|
---|
30 | }
|
---|
31 | }
|
---|
32 |
|
---|
33 | $objPage = new LC_Page();
|
---|
34 | $objView = new SC_MobileView();
|
---|
35 | $objSiteSess = new SC_SiteSession();
|
---|
36 | $objCartSess = new SC_CartSession();
|
---|
37 | $objCustomer = new SC_Customer();
|
---|
38 | // クッキー管理クラス
|
---|
39 | $objCookie = new SC_Cookie(COOKIE_EXPIRE);
|
---|
40 | // パラメータ管理クラス
|
---|
41 | $objFormParam = new SC_FormParam();
|
---|
42 | // パラメータ情報の初期化
|
---|
43 | lfInitParam();
|
---|
44 | // POST値の取得
|
---|
45 | $objFormParam->setParam($_POST);
|
---|
46 |
|
---|
47 | $objLoginFormParam = new SC_FormParam(); // ログインフォーム用
|
---|
48 | lfInitLoginFormParam(); // 初期設定
|
---|
49 | $objLoginFormParam->setParam($_POST); // POST値の取得
|
---|
50 |
|
---|
51 | // ユーザユニークIDの取得と購入状態の正当性をチェック
|
---|
52 | $uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess);
|
---|
53 | $objPage->tpl_uniqid = $uniqid;
|
---|
54 |
|
---|
55 | // ログインチェック
|
---|
56 | if($_POST['mode'] != 'login' && !$objCustomer->isLoginSuccess()) {
|
---|
57 | // 不正アクセスとみなす
|
---|
58 | sfDispSiteError(CUSTOMER_ERROR, "", false, "", true);
|
---|
59 | }
|
---|
60 |
|
---|
61 | switch($_POST['mode']) {
|
---|
62 | case 'login':
|
---|
63 | $objLoginFormParam->toLower('login_email');
|
---|
64 | $objPage->arrErr = $objLoginFormParam->checkError();
|
---|
65 | $arrForm = $objLoginFormParam->getHashArray();
|
---|
66 | // クッキー保存判定
|
---|
67 | if($arrForm['login_memory'] == "1" && $arrForm['login_email'] != "") {
|
---|
68 | $objCookie->setCookie('login_email', $_POST['login_email']);
|
---|
69 | } else {
|
---|
70 | $objCookie->setCookie('login_email', '');
|
---|
71 | }
|
---|
72 |
|
---|
73 | if(count($objPage->arrErr) == 0) {
|
---|
74 | // ログイン判定
|
---|
75 | if(!$objCustomer->getCustomerDataFromMobilePhoneIdPass($arrForm['login_pass']) &&
|
---|
76 | !$objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'], true)) {
|
---|
77 | // 仮登録の判定
|
---|
78 | $objQuery = new SC_Query;
|
---|
79 | $where = "email = ? AND status = 1 AND del_flg = 0";
|
---|
80 | $ret = $objQuery->count("dtb_customer", $where, array($arrForm['login_email']));
|
---|
81 |
|
---|
82 | if($ret > 0) {
|
---|
83 | sfDispSiteError(TEMP_LOGIN_ERROR, "", false, "", true);
|
---|
84 | } else {
|
---|
85 | sfDispSiteError(SITE_LOGIN_ERROR, "", false, "", true);
|
---|
86 | }
|
---|
87 | }
|
---|
88 | } else {
|
---|
89 | // ログインページに戻る
|
---|
90 | header("Location: " . gfAddSessionId(MOBILE_URL_SHOP_TOP));
|
---|
91 | exit;
|
---|
92 | }
|
---|
93 |
|
---|
94 | // ログインが成功した場合は携帯端末IDを保存する。
|
---|
95 | $objCustomer->updateMobilePhoneId();
|
---|
96 |
|
---|
97 | // 携帯のメールアドレスをコピーする。
|
---|
98 | $objCustomer->updateEmailMobile();
|
---|
99 |
|
---|
100 | // 携帯のメールアドレスが登録されていない場合
|
---|
101 | if (!$objCustomer->hasValue('email_mobile')) {
|
---|
102 | header('Location: ' . gfAddSessionId('../entry/email_mobile.php'));
|
---|
103 | exit;
|
---|
104 | }
|
---|
105 | break;
|
---|
106 | // 削除
|
---|
107 | case 'delete':
|
---|
108 | if (sfIsInt($_POST['other_deliv_id'])) {
|
---|
109 | $objQuery = new SC_Query();
|
---|
110 | $where = "other_deliv_id = ?";
|
---|
111 | $arrRet = $objQuery->delete("dtb_other_deliv", $where, array($_POST['other_deliv_id']));
|
---|
112 | $objFormParam->setValue('select_addr_id', '');
|
---|
113 | }
|
---|
114 | break;
|
---|
115 | // 会員登録住所に送る
|
---|
116 | case 'customer_addr':
|
---|
117 | // お届け先がチェックされている場合には更新処理を行う
|
---|
118 | if ($_POST['deli'] != "") {
|
---|
119 | // 会員情報の住所を受注一時テーブルに書き込む
|
---|
120 | lfRegistDelivData($uniqid, $objCustomer);
|
---|
121 | // 正常に登録されたことを記録しておく
|
---|
122 | $objSiteSess->setRegistFlag();
|
---|
123 | // お支払い方法選択ページへ移動
|
---|
124 | header("Location: " . gfAddSessionId(MOBILE_URL_SHOP_PAYMENT));
|
---|
125 | exit;
|
---|
126 | }else{
|
---|
127 | // エラーを返す
|
---|
128 | $arrErr['deli'] = '※ お届け先を選択してください。';
|
---|
129 | }
|
---|
130 | break;
|
---|
131 |
|
---|
132 | // 登録済みの別のお届け先に送る
|
---|
133 | case 'other_addr':
|
---|
134 | // お届け先がチェックされている場合には更新処理を行う
|
---|
135 | if ($_POST['deli'] != "") {
|
---|
136 | if (sfIsInt($_POST['other_deliv_id'])) {
|
---|
137 | // 登録済みの別のお届け先を受注一時テーブルに書き込む
|
---|
138 | lfRegistOtherDelivData($uniqid, $objCustomer, $_POST['other_deliv_id']);
|
---|
139 | // 正常に登録されたことを記録しておく
|
---|
140 | $objSiteSess->setRegistFlag();
|
---|
141 | // お支払い方法選択ページへ移動
|
---|
142 | header("Location: " . gfAddSessionId(MOBILE_URL_SHOP_PAYMENT));
|
---|
143 | exit;
|
---|
144 | }
|
---|
145 | }else{
|
---|
146 | // エラーを返す
|
---|
147 | $arrErr['deli'] = '※ お届け先を選択してください。';
|
---|
148 | }
|
---|
149 | break;
|
---|
150 |
|
---|
151 | /*
|
---|
152 | // 別のお届け先を指定
|
---|
153 | case 'new_addr':
|
---|
154 | // 入力値の変換
|
---|
155 | $objFormParam->convParam();
|
---|
156 | $objPage->arrErr = lfCheckError($arrRet);
|
---|
157 | // 入力エラーなし
|
---|
158 | if(count($objPage->arrErr) == 0) {
|
---|
159 | // DBへお届け先を登録
|
---|
160 | lfRegistNewAddrData($uniqid, $objCustomer);
|
---|
161 | // 正常に登録されたことを記録しておく
|
---|
162 | $objSiteSess->setRegistFlag();
|
---|
163 | // お支払い方法選択ページへ移動
|
---|
164 | header("Location: " . URL_SHOP_PAYMENT);
|
---|
165 | exit;
|
---|
166 | }
|
---|
167 | break;
|
---|
168 | */
|
---|
169 |
|
---|
170 | // 前のページに戻る
|
---|
171 | case 'return':
|
---|
172 | // 確認ページへ移動
|
---|
173 | header("Location: " . MOBILE_URL_CART_TOP);
|
---|
174 | exit;
|
---|
175 | break;
|
---|
176 | default:
|
---|
177 | $objQuery = new SC_Query();
|
---|
178 | $where = "order_temp_id = ?";
|
---|
179 | $arrRet = $objQuery->select("*", "dtb_order_temp", $where, array($uniqid));
|
---|
180 | $objFormParam->setParam($arrRet[0]);
|
---|
181 | break;
|
---|
182 | }
|
---|
183 |
|
---|
184 | /** 表示処理 **/
|
---|
185 |
|
---|
186 | // 会員登録住所の取得
|
---|
187 | $col = "name01, name02, pref, addr01, addr02, zip01, zip02";
|
---|
188 | $where = "customer_id = ?";
|
---|
189 | $objQuery = new SC_Query();
|
---|
190 | $arrCustomerAddr = $objQuery->select($col, "dtb_customer", $where, array($_SESSION['customer']['customer_id']));
|
---|
191 | // 別のお届け先住所の取得
|
---|
192 | $col = "other_deliv_id, name01, name02, pref, addr01, addr02, zip01, zip02";
|
---|
193 | $objQuery->setorder("other_deliv_id DESC");
|
---|
194 | $objOtherAddr = $objQuery->select($col, "dtb_other_deliv", $where, array($_SESSION['customer']['customer_id']));
|
---|
195 | $objPage->arrAddr = $arrCustomerAddr;
|
---|
196 | $cnt = 1;
|
---|
197 | foreach($objOtherAddr as $val) {
|
---|
198 | $objPage->arrAddr[$cnt] = $val;
|
---|
199 | $cnt++;
|
---|
200 | }
|
---|
201 |
|
---|
202 | // 入力値の取得
|
---|
203 | $objPage->arrForm = $objFormParam->getFormParamList();
|
---|
204 | $objPage->arrErr = $arrErr;
|
---|
205 | $objView->assignobj($objPage);
|
---|
206 | $objView->display(SITE_FRAME);
|
---|
207 | //--------------------------------------------------------------------------------------------------------------------------
|
---|
208 | /* パラメータ情報の初期化 */
|
---|
209 | function lfInitParam() {
|
---|
210 | global $objFormParam;
|
---|
211 | $objFormParam->addParam("お名前1", "deliv_name01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
|
---|
212 | $objFormParam->addParam("お名前2", "deliv_name02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
|
---|
213 | $objFormParam->addParam("フリガナ1", "deliv_kana01", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
|
---|
214 | $objFormParam->addParam("フリガナ2", "deliv_kana02", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
|
---|
215 | $objFormParam->addParam("郵便番号1", "deliv_zip01", ZIP01_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK"));
|
---|
216 | $objFormParam->addParam("郵便番号2", "deliv_zip02", ZIP02_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK"));
|
---|
217 | $objFormParam->addParam("都道府県", "deliv_pref", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
|
---|
218 | $objFormParam->addParam("住所1", "deliv_addr01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
|
---|
219 | $objFormParam->addParam("住所2", "deliv_addr02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
|
---|
220 | $objFormParam->addParam("電話番号1", "deliv_tel01", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK"));
|
---|
221 | $objFormParam->addParam("電話番号2", "deliv_tel02", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK"));
|
---|
222 | $objFormParam->addParam("電話番号3", "deliv_tel03", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK"));
|
---|
223 | }
|
---|
224 |
|
---|
225 | function lfInitLoginFormParam() {
|
---|
226 | global $objLoginFormParam;
|
---|
227 | $objLoginFormParam->addParam("記憶する", "login_memory", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
|
---|
228 | $objLoginFormParam->addParam("メールアドレス", "login_email", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
|
---|
229 | $objLoginFormParam->addParam("パスワード", "login_pass", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
|
---|
230 | }
|
---|
231 |
|
---|
232 | /* DBへデータの登録 */
|
---|
233 | function lfRegistNewAddrData($uniqid, $objCustomer) {
|
---|
234 | global $objFormParam;
|
---|
235 | $arrRet = $objFormParam->getHashArray();
|
---|
236 | $sqlval = $objFormParam->getDbArray();
|
---|
237 | // 登録データの作成
|
---|
238 | $sqlval['deliv_check'] = '1';
|
---|
239 | $sqlval['order_temp_id'] = $uniqid;
|
---|
240 | $sqlval['update_date'] = 'Now()';
|
---|
241 | $sqlval['customer_id'] = $objCustomer->getValue('customer_id');
|
---|
242 | $sqlval['order_birth'] = $objCustomer->getValue('birth');
|
---|
243 |
|
---|
244 | sfRegistTempOrder($uniqid, $sqlval);
|
---|
245 | }
|
---|
246 |
|
---|
247 | /* 会員情報の住所を一時受注テーブルへ */
|
---|
248 | function lfRegistDelivData($uniqid, $objCustomer) {
|
---|
249 | // 登録データの作成
|
---|
250 | $sqlval['order_temp_id'] = $uniqid;
|
---|
251 | $sqlval['update_date'] = 'Now()';
|
---|
252 | $sqlval['customer_id'] = $objCustomer->getValue('customer_id');
|
---|
253 | $sqlval['deliv_check'] = '1';
|
---|
254 | $sqlval['deliv_name01'] = $objCustomer->getValue('name01');
|
---|
255 | $sqlval['deliv_name02'] = $objCustomer->getValue('name02');
|
---|
256 | $sqlval['deliv_kana01'] = $objCustomer->getValue('kana01');
|
---|
257 | $sqlval['deliv_kana02'] = $objCustomer->getValue('kana02');
|
---|
258 | $sqlval['deliv_zip01'] = $objCustomer->getValue('zip01');
|
---|
259 | $sqlval['deliv_zip02'] = $objCustomer->getValue('zip02');
|
---|
260 | $sqlval['deliv_pref'] = $objCustomer->getValue('pref');
|
---|
261 | $sqlval['deliv_addr01'] = $objCustomer->getValue('addr01');
|
---|
262 | $sqlval['deliv_addr02'] = $objCustomer->getValue('addr02');
|
---|
263 | $sqlval['deliv_tel01'] = $objCustomer->getValue('tel01');
|
---|
264 | $sqlval['deliv_tel02'] = $objCustomer->getValue('tel02');
|
---|
265 | $sqlval['deliv_tel03'] = $objCustomer->getValue('tel03');
|
---|
266 |
|
---|
267 | $sqlval['deliv_fax01'] = $objCustomer->getValue('fax01');
|
---|
268 | $sqlval['deliv_fax02'] = $objCustomer->getValue('fax02');
|
---|
269 | $sqlval['deliv_fax03'] = $objCustomer->getValue('fax03');
|
---|
270 |
|
---|
271 | sfRegistTempOrder($uniqid, $sqlval);
|
---|
272 | }
|
---|
273 |
|
---|
274 | /* 別のお届け先住所を一時受注テーブルへ */
|
---|
275 | function lfRegistOtherDelivData($uniqid, $objCustomer, $other_deliv_id) {
|
---|
276 | // 登録データの作成
|
---|
277 | $sqlval['order_temp_id'] = $uniqid;
|
---|
278 | $sqlval['update_date'] = 'Now()';
|
---|
279 | $sqlval['customer_id'] = $objCustomer->getValue('customer_id');
|
---|
280 | $sqlval['order_birth'] = $objCustomer->getValue('birth');
|
---|
281 |
|
---|
282 | $objQuery = new SC_Query();
|
---|
283 | $where = "other_deliv_id = ?";
|
---|
284 | $arrRet = $objQuery->select("*", "dtb_other_deliv", $where, array($other_deliv_id));
|
---|
285 |
|
---|
286 | $sqlval['deliv_check'] = '1';
|
---|
287 | $sqlval['deliv_name01'] = $arrRet[0]['name01'];
|
---|
288 | $sqlval['deliv_name02'] = $arrRet[0]['name02'];
|
---|
289 | $sqlval['deliv_kana01'] = $arrRet[0]['kana01'];
|
---|
290 | $sqlval['deliv_kana02'] = $arrRet[0]['kana02'];
|
---|
291 | $sqlval['deliv_zip01'] = $arrRet[0]['zip01'];
|
---|
292 | $sqlval['deliv_zip02'] = $arrRet[0]['zip02'];
|
---|
293 | $sqlval['deliv_pref'] = $arrRet[0]['pref'];
|
---|
294 | $sqlval['deliv_addr01'] = $arrRet[0]['addr01'];
|
---|
295 | $sqlval['deliv_addr02'] = $arrRet[0]['addr02'];
|
---|
296 | $sqlval['deliv_tel01'] = $arrRet[0]['tel01'];
|
---|
297 | $sqlval['deliv_tel02'] = $arrRet[0]['tel02'];
|
---|
298 | $sqlval['deliv_tel03'] = $arrRet[0]['tel03'];
|
---|
299 | sfRegistTempOrder($uniqid, $sqlval);
|
---|
300 | }
|
---|
301 |
|
---|
302 | /* 入力内容のチェック */
|
---|
303 | function lfCheckError() {
|
---|
304 | global $objFormParam;
|
---|
305 | // 入力データを渡す。
|
---|
306 | $arrRet = $objFormParam->getHashArray();
|
---|
307 | $objErr = new SC_CheckError($arrRet);
|
---|
308 | $objErr->arrErr = $objFormParam->checkError();
|
---|
309 | // 複数項目チェック
|
---|
310 | if ($_POST['mode'] == 'login'){
|
---|
311 | $objErr->doFunc(array("メールアドレス", "login_email", STEXT_LEN), array("EXIST_CHECK"));
|
---|
312 | $objErr->doFunc(array("パスワード", "login_pass", STEXT_LEN), array("EXIST_CHECK"));
|
---|
313 | }
|
---|
314 | $objErr->doFunc(array("TEL", "deliv_tel01", "deliv_tel02", "deliv_tel03", TEL_ITEM_LEN), array("TEL_CHECK"));
|
---|
315 | return $objErr->arrErr;
|
---|
316 | }
|
---|
317 | ?>
|
---|