Changeset 16170 for branches/feature-module-update/html/mobile/shopping
- Timestamp:
- 2007/09/28 22:42:56 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/feature-module-update/html/mobile/shopping/deliv.php
r15532 r16170 1 1 <?php 2 2 /** 3 * 3 * 4 4 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved. 5 5 * 6 6 * http://www.lockon.co.jp/ 7 * 7 * 8 * 9 * モバイルサイト/注文処理 8 10 */ 9 11 12 // {{{ requires 10 13 require_once("../require.php"); 14 require_once(CLASS_PATH . "page_extends/shopping/LC_Page_Shopping_Deliv_Ex.php"); 11 15 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 = "お届け先指定"; // タイトル 16 // }}} 17 // {{{ generate page 22 18 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 } 19 $objPage = new LC_Page_Shopping_Deliv_Ex(); 20 $objPage->mobileInit(); 21 $objPage->mobileProcess(); 22 register_shutdown_function(array($objPage, "destroy")); 317 23 ?>
Note: See TracChangeset
for help on using the changeset viewer.