Ignore:
Timestamp:
2007/09/28 22:42:56 (16 years ago)
Author:
nanasess
Message:

モバイル対応

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update/html/mobile/shopping/deliv.php

    r15532 r16170  
    11<?php 
    22/** 
    3  *  
     3 * 
    44 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved. 
    55 * 
    66 * http://www.lockon.co.jp/ 
    7  *  
     7 * 
     8 * 
     9 * モバイルサイト/注文処理 
    810 */ 
    911 
     12// {{{ requires 
    1013require_once("../require.php"); 
     14require_once(CLASS_PATH . "page_extends/shopping/LC_Page_Shopping_Deliv_Ex.php"); 
    1115 
    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 
    2218 
    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(); 
     22register_shutdown_function(array($objPage, "destroy")); 
    31723?> 
Note: See TracChangeset for help on using the changeset viewer.