Ignore:
Timestamp:
2007/09/28 21:34:04 (15 years ago)
Author:
nanasess
Message:

モバイル対応

File:
1 edited

Legend:

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

    r15532 r16168  
    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_Ex.php"); 
    1115 
    12 class LC_Page { 
    13     var $arrSession; 
    14     var $tpl_mode; 
    15     var $tpl_login_email; 
    16     function LC_Page() { 
    17         $this->tpl_mainpage = 'shopping/index.tpl'; 
    18         global $arrPref; 
    19         $this->arrPref = $arrPref; 
    20         global $arrSex; 
    21         $this->arrSex = $arrSex; 
    22         global $arrJob; 
    23         $this->arrJob = $arrJob; 
    24         $this->tpl_onload = 'fnCheckInputDeliv();'; 
    25          
    26         /* 
    27          session_start時のno-cacheヘッダーを抑制することで 
    28          「戻る」ボタン使用時の有効期限切れ表示を抑制する。 
    29          private-no-expire:クライアントのキャッシュを許可する。 
    30         */ 
    31         session_cache_limiter('private-no-expire');              
    32     } 
    33 } 
     16// }}} 
     17// {{{ generate page 
    3418 
    35 $conn = new SC_DBConn(); 
    36 $objPage = new LC_Page(); 
    37 $objView = new SC_MobileView(); 
    38 $objSiteSess = new SC_SiteSession(); 
    39 $objCartSess = new SC_CartSession(); 
    40 $objCustomer = new SC_Customer(); 
    41 $objCookie = new SC_Cookie(); 
    42 $objFormParam = new SC_FormParam();         // フォーム用 
    43 lfInitParam();                              // パラメータ情報の初期化 
    44 $objFormParam->setParam($_POST);            // POST値の取得 
    45  
    46 // ユーザユニークIDの取得と購入状態の正当性をチェック 
    47 $uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess); 
    48  
    49 $objPage->tpl_uniqid = $uniqid; 
    50  
    51 // ログインチェック 
    52 if($objCustomer->isLoginSuccess()) { 
    53     // すでにログインされている場合は、お届け先設定画面に転送 
    54     header("Location: " . gfAddSessionId('deliv.php')); 
    55     exit; 
    56 } 
    57  
    58 // 携帯端末IDが一致する会員が存在するかどうかをチェックする。 
    59 $objPage->tpl_valid_phone_id = $objCustomer->checkMobilePhoneId(); 
    60  
    61 switch($_POST['mode']) { 
    62 case 'nonmember_confirm': 
    63     $objPage = lfSetNonMember($objPage); 
    64     // ※breakなし 
    65 case 'confirm': 
    66     // 入力値の変換 
    67     $objFormParam->convParam(); 
    68     $objFormParam->toLower('order_mail'); 
    69     $objFormParam->toLower('order_mail_check'); 
    70      
    71     $objPage->arrErr = lfCheckError(); 
    72  
    73     // 入力エラーなし 
    74     if(count($objPage->arrErr) == 0) { 
    75         // DBへのデータ登録 
    76         lfRegistData($uniqid); 
    77         // 正常に登録されたことを記録しておく 
    78         $objSiteSess->setRegistFlag(); 
    79         // お支払い方法選択ページへ移動 
    80         header("Location: " . gfAddSessionId(MOBILE_URL_SHOP_PAYMENT)); 
    81         exit;        
    82     } 
    83      
    84     break; 
    85 // 前のページに戻る 
    86 case 'return': 
    87     // 確認ページへ移動 
    88     header("Location: " . gfAddSessionId(MOBILE_URL_CART_TOP)); 
    89     exit; 
    90     break; 
    91 case 'nonmember': 
    92     $objPage = lfSetNonMember($objPage); 
    93     // ※breakなし 
    94 default: 
    95     if($_GET['from'] == 'nonmember') { 
    96         $objPage = lfSetNonMember($objPage); 
    97     } 
    98     // ユーザユニークIDの取得 
    99     $uniqid = $objSiteSess->getUniqId(); 
    100     $objQuery = new SC_Query(); 
    101     $where = "order_temp_id = ?"; 
    102     $arrRet = $objQuery->select("*", "dtb_order_temp", $where, array($uniqid)); 
    103     // DB値の取得 
    104     $objFormParam->setParam($arrRet[0]); 
    105     $objFormParam->setValue('order_email_check', $arrRet[0]['order_email']); 
    106     $objFormParam->setDBDate($arrRet[0]['order_birth']); 
    107     break; 
    108 } 
    109  
    110 // クッキー判定 
    111 $objPage->tpl_login_email = $objCookie->getCookie('login_email'); 
    112 if($objPage->tpl_login_email != "") { 
    113     $objPage->tpl_login_memory = "1"; 
    114 } 
    115  
    116 // 選択用日付の取得 
    117 $objDate = new SC_Date(START_BIRTH_YEAR); 
    118 $objPage->arrYear = $objDate->getYear('', 1950);    // 日付プルダウン設定 
    119 $objPage->arrMonth = $objDate->getMonth(); 
    120 $objPage->arrDay = $objDate->getDay(); 
    121  
    122 if($objPage->year == '') { 
    123     $objPage->year = '----'; 
    124 } 
    125  
    126 // 入力値の取得 
    127 $objPage->arrForm = $objFormParam->getFormParamList(); 
    128  
    129 if($objPage->arrForm['year']['value'] == ""){ 
    130     $objPage->arrForm['year']['value'] = '----';     
    131 } 
    132  
    133 $objView->assignobj($objPage); 
    134 $objView->display(SITE_FRAME); 
    135 //-------------------------------------------------------------------------------------------------------------------------- 
    136 /* 非会員入力ページのセット */ 
    137 function lfSetNonMember($objPage) { 
    138     $objPage->tpl_mainpage = 'shopping/nonmember_input.tpl'; 
    139     $objPage->tpl_css = array(); 
    140     $objPage->tpl_css[] = '/css/layout/login/nonmember.css'; 
    141     return $objPage; 
    142 } 
    143  
    144 /* パラメータ情報の初期化 */ 
    145 function lfInitParam() { 
    146     global $objFormParam; 
    147     $objFormParam->addParam("お名前(姓)", "order_name01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    148     $objFormParam->addParam("お名前(名)", "order_name02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    149     $objFormParam->addParam("フリガナ(セイ)", "order_kana01", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    150     $objFormParam->addParam("フリガナ(メイ)", "order_kana02", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    151     $objFormParam->addParam("郵便番号1", "order_zip01", ZIP01_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); 
    152     $objFormParam->addParam("郵便番号2", "order_zip02", ZIP02_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); 
    153     $objFormParam->addParam("都道府県", "order_pref", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
    154     $objFormParam->addParam("住所1", "order_addr01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    155     $objFormParam->addParam("住所2", "order_addr02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    156     $objFormParam->addParam("電話番号1", "order_tel01", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    157     $objFormParam->addParam("電話番号2", "order_tel02", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    158     $objFormParam->addParam("電話番号3", "order_tel03", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    159     $objFormParam->addParam("FAX番号1", "order_fax01", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    160     $objFormParam->addParam("FAX番号2", "order_fax02", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    161     $objFormParam->addParam("FAX番号3", "order_fax03", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    162     $objFormParam->addParam("メールアドレス", "order_email", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "NO_SPTAB", "MAX_LENGTH_CHECK", "EMAIL_CHECK", "EMAIL_CHAR_CHECK")); 
    163     $objFormParam->addParam("メールアドレス(確認)", "order_email_check", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "NO_SPTAB", "MAX_LENGTH_CHECK", "EMAIL_CHECK", "EMAIL_CHAR_CHECK"), "", false); 
    164     $objFormParam->addParam("年", "year", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 
    165     $objFormParam->addParam("月", "month", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 
    166     $objFormParam->addParam("日", "day", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 
    167     $objFormParam->addParam("性別", "order_sex", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
    168     $objFormParam->addParam("職業", "order_job", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
    169     $objFormParam->addParam("別のお届け先", "deliv_check", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
    170     $objFormParam->addParam("お名前(姓)", "deliv_name01", STEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    171     $objFormParam->addParam("お名前(名)", "deliv_name02", STEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    172     $objFormParam->addParam("フリガナ(セイ)", "deliv_kana01", STEXT_LEN, "KVCa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    173     $objFormParam->addParam("フリガナ(メイ)", "deliv_kana02", STEXT_LEN, "KVCa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    174     $objFormParam->addParam("郵便番号1", "deliv_zip01", ZIP01_LEN, "n", array("NUM_CHECK", "NUM_COUNT_CHECK")); 
    175     $objFormParam->addParam("郵便番号2", "deliv_zip02", ZIP02_LEN, "n", array("NUM_CHECK", "NUM_COUNT_CHECK")); 
    176     $objFormParam->addParam("都道府県", "deliv_pref", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
    177     $objFormParam->addParam("住所1", "deliv_addr01", STEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    178     $objFormParam->addParam("住所2", "deliv_addr02", STEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    179     $objFormParam->addParam("電話番号1", "deliv_tel01", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    180     $objFormParam->addParam("電話番号2", "deliv_tel02", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    181     $objFormParam->addParam("電話番号3", "deliv_tel03", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    182     $objFormParam->addParam("メールマガジン", "mail_flag", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), 1); 
    183 } 
    184  
    185 /* DBへデータの登録 */ 
    186 function lfRegistData($uniqid) { 
    187     global $objFormParam; 
    188     $arrRet = $objFormParam->getHashArray(); 
    189     $sqlval = $objFormParam->getDbArray(); 
    190     // 登録データの作成 
    191     $sqlval['order_temp_id'] = $uniqid; 
    192     $sqlval['order_birth'] = sfGetTimestamp($arrRet['year'], $arrRet['month'], $arrRet['day']); 
    193     $sqlval['update_date'] = 'Now()'; 
    194     $sqlval['customer_id'] = '0'; 
    195      
    196     // 既存データのチェック 
    197     $objQuery = new SC_Query(); 
    198     $where = "order_temp_id = ?"; 
    199     $cnt = $objQuery->count("dtb_order_temp", $where, array($uniqid)); 
    200     // 既存データがない場合 
    201     if ($cnt == 0) { 
    202         $sqlval['create_date'] = 'Now()'; 
    203         $objQuery->insert("dtb_order_temp", $sqlval); 
    204     } else { 
    205         $objQuery->update("dtb_order_temp", $sqlval, $where, array($uniqid)); 
    206     } 
    207 } 
    208  
    209 /* 入力内容のチェック */ 
    210 function lfCheckError() { 
    211     global $objFormParam; 
    212     // 入力データを渡す。 
    213     $arrRet =  $objFormParam->getHashArray(); 
    214     $objErr = new SC_CheckError($arrRet); 
    215     $objErr->arrErr = $objFormParam->checkError(); 
    216          
    217     // 別のお届け先チェック 
    218     if($_POST['deliv_check'] == "1") {  
    219         $objErr->doFunc(array("お名前(姓)", "deliv_name01"), array("EXIST_CHECK")); 
    220         $objErr->doFunc(array("お名前(名)", "deliv_name02"), array("EXIST_CHECK")); 
    221         $objErr->doFunc(array("フリガナ(セイ)", "deliv_kana01"), array("EXIST_CHECK")); 
    222         $objErr->doFunc(array("フリガナ(メイ)", "deliv_kana02"), array("EXIST_CHECK")); 
    223         $objErr->doFunc(array("郵便番号1", "deliv_zip01"), array("EXIST_CHECK")); 
    224         $objErr->doFunc(array("郵便番号2", "deliv_zip02"), array("EXIST_CHECK")); 
    225         $objErr->doFunc(array("都道府県", "deliv_pref"), array("EXIST_CHECK")); 
    226         $objErr->doFunc(array("住所1", "deliv_addr01"), array("EXIST_CHECK")); 
    227         $objErr->doFunc(array("住所2", "deliv_addr02"), array("EXIST_CHECK")); 
    228         $objErr->doFunc(array("電話番号1", "deliv_tel01"), array("EXIST_CHECK")); 
    229         $objErr->doFunc(array("電話番号2", "deliv_tel02"), array("EXIST_CHECK")); 
    230         $objErr->doFunc(array("電話番号3", "deliv_tel03"), array("EXIST_CHECK")); 
    231     } 
    232      
    233     // 複数項目チェック 
    234     $objErr->doFunc(array("TEL", "order_tel01", "order_tel02", "order_tel03", TEL_ITEM_LEN), array("TEL_CHECK")); 
    235     $objErr->doFunc(array("FAX", "order_fax01", "order_fax02", "order_fax03", TEL_ITEM_LEN), array("TEL_CHECK")); 
    236     $objErr->doFunc(array("郵便番号", "order_zip01", "order_zip02"), array("ALL_EXIST_CHECK")); 
    237     $objErr->doFunc(array("TEL", "deliv_tel01", "deliv_tel02", "deliv_tel03", TEL_ITEM_LEN), array("TEL_CHECK")); 
    238     $objErr->doFunc(array("FAX", "deliv_fax01", "deliv_fax02", "deliv_fax03", TEL_ITEM_LEN), array("TEL_CHECK")); 
    239     $objErr->doFunc(array("郵便番号", "deliv_zip01", "deliv_zip02"), array("ALL_EXIST_CHECK")); 
    240     $objErr->doFunc(array("生年月日", "year", "month", "day"), array("CHECK_DATE")); 
    241     $objErr->doFunc(array("メールアドレス", "メールアドレス(確認)", "order_email", "order_email_check"), array("EQUAL_CHECK")); 
    242      
    243     // すでにメルマガテーブルに会員としてメールアドレスが登録されている場合 
    244     if(sfCheckCustomerMailMaga($arrRet['order_email'])) { 
    245         $objErr->arrErr['order_email'] = "このメールアドレスはすでに登録されています。<br>"; 
    246     } 
    247          
    248     return $objErr->arrErr; 
    249 } 
     19$objPage = new LC_Page_Shopping_Ex(); 
     20$objPage->mobileInit(); 
     21$objPage->mobileProcess(); 
     22register_shutdown_function(array($objPage, "destroy")); 
    25023?> 
Note: See TracChangeset for help on using the changeset viewer.