Changeset 16132


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

モバイル対応

Location:
branches/feature-module-update
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update/data/class/pages/entry/LC_Page_Entry.php

    r16023 r16132  
    3232        $this->tpl_title .= '会員登録(入力ページ)'; 
    3333        $this->year = ""; 
    34     } 
    35  
    36     /** 
    37      * Page のプロセス. 
    38      * 
    39      * @return void 
    40      */ 
    41     function process() { 
    42  
    43         $objConn = new SC_DbConn(); 
    44         $objView = new SC_SiteView(); 
    45         $objCustomer = new SC_Customer(); 
    46         $objCampaignSess = new SC_CampaignSession(); 
    47         $objDb = new SC_Helper_DB_Ex(); 
    48         $CONF = $objDb->sf_getBasisData(); 
    49         $objDate = new SC_Date(START_BIRTH_YEAR, date("Y",strtotime("now"))); 
    5034        $masterData = new SC_DB_MasterData_Ex(); 
    5135        $this->arrPref = $masterData->getMasterData("mtb_pref", 
     
    5640        $this->arrMonth = $objDate->getMonth(); 
    5741        $this->arrDay = $objDate->getDay(); 
    58  
     42    } 
     43 
     44    /** 
     45     * Page のプロセス. 
     46     * 
     47     * @return void 
     48     */ 
     49    function process() { 
     50 
     51        $objConn = new SC_DbConn(); 
     52        $objView = new SC_SiteView(); 
     53        $objCustomer = new SC_Customer(); 
     54        $objCampaignSess = new SC_CampaignSession(); 
     55        $objDb = new SC_Helper_DB_Ex(); 
     56        $CONF = $objDb->sf_getBasisData(); 
     57        $objDate = new SC_Date(START_BIRTH_YEAR, date("Y",strtotime("now"))); 
    5958        //SSLURL判定 
    6059        if (SSLURL_CHECK == 1){ 
     
    218217 
    219218    /** 
     219     * モバイルページを初期化する. 
     220     * 
     221     * @return void 
     222     */ 
     223    function mobileInit() { 
     224        $this->init(); 
     225        $this->tpl_mainpage = 'entry/index.tpl';        // メインテンプレート 
     226        $this->tpl_title .= '会員登録(1/3)';            // ページタイトル 
     227    } 
     228 
     229    /** 
     230     * Page のプロセス(モバイル). 
     231     * 
     232     * @return void 
     233     */ 
     234    function mobileProcess() { 
     235        //---- ページ初期設定 
     236        $objDb = new SC_Helper_DB_Ex(); 
     237        $objMobile = new SC_Helper_Mobile_Ex(); 
     238        $CONF = $objDb->sf_getBasisData();                  // 店舗基本情報 
     239        $objConn = new SC_DbConn(); 
     240        $objView = new SC_MobileView(); 
     241        $objCustomer = new SC_Customer(); 
     242        $objDate = new SC_Date(START_BIRTH_YEAR, date("Y",strtotime("now"))); 
     243 
     244        // 空メール 
     245        if (isset($_SESSION['mobile']['kara_mail_from'])) { 
     246            $this->tpl_kara_mail_from = $_POST['email'] = $_SESSION['mobile']['kara_mail_from']; 
     247        } elseif (MOBILE_USE_KARA_MAIL) { 
     248            $token = $objMobile->gfPrepareKaraMail('entry/index.php'); 
     249            if ($token !== false) { 
     250                $this->tpl_mainpage = 'entry/mail.tpl'; 
     251                $this->tpl_title = '会員登録(空メール)'; 
     252                $this->tpl_kara_mail_to = MOBILE_KARA_MAIL_ADDRESS_USER . MOBILE_KARA_MAIL_ADDRESS_DELIMITER . 'entry_' . $token . '@' . MOBILE_KARA_MAIL_ADDRESS_DOMAIN; 
     253                $this->tpl_from_address = $CONF['email03']; 
     254            } 
     255        } 
     256 
     257        //SSLURL判定 
     258        if (SSLURL_CHECK == 1){ 
     259            $ssl_url= SC_Utils_Ex::sfRmDupSlash(MOBILE_SSL_URL.$_SERVER['REQUEST_URI']); 
     260            if (!ereg("^https://", $non_ssl_url)){ 
     261                SC_Utils_Ex::sfDispSiteError(URL_ERROR, "", false, "", true); 
     262            } 
     263        } 
     264 
     265        // レイアウトデザインを取得 
     266        $objLayout = new SC_Helper_PageLayout_Ex(); 
     267        $objLayout->sfGetPageLayout($this, false, DEF_LAYOUT); 
     268 
     269        //---- 登録用カラム配列 
     270        $arrRegistColumn = array( 
     271                                 array(  "column" => "name01", "convert" => "aKV" ), 
     272                                 array(  "column" => "name02", "convert" => "aKV" ), 
     273                                 array(  "column" => "kana01", "convert" => "CKV" ), 
     274                                 array(  "column" => "kana02", "convert" => "CKV" ), 
     275                                 array(  "column" => "zip01", "convert" => "n" ), 
     276                                 array(  "column" => "zip02", "convert" => "n" ), 
     277                                 array(  "column" => "pref", "convert" => "n" ), 
     278                                 array(  "column" => "addr01", "convert" => "aKV" ), 
     279                                 array(  "column" => "addr02", "convert" => "aKV" ), 
     280                                 array(  "column" => "email", "convert" => "a" ), 
     281                                 array(  "column" => "email2", "convert" => "a" ), 
     282                                 array(  "column" => "email_mobile", "convert" => "a" ), 
     283                                 array(  "column" => "email_mobile2", "convert" => "a" ), 
     284                                 array(  "column" => "tel01", "convert" => "n" ), 
     285                                 array(  "column" => "tel02", "convert" => "n" ), 
     286                                 array(  "column" => "tel03", "convert" => "n" ), 
     287                                 array(  "column" => "fax01", "convert" => "n" ), 
     288                                 array(  "column" => "fax02", "convert" => "n" ), 
     289                                 array(  "column" => "fax03", "convert" => "n" ), 
     290                                 array(  "column" => "sex", "convert" => "n" ), 
     291                                 array(  "column" => "job", "convert" => "n" ), 
     292                                 array(  "column" => "birth", "convert" => "n" ), 
     293                                 array(  "column" => "reminder", "convert" => "n" ), 
     294                                 array(  "column" => "reminder_answer", "convert" => "aKV"), 
     295                                 array(  "column" => "password", "convert" => "a" ), 
     296                                 array(  "column" => "password02", "convert" => "a" ), 
     297                                 array(  "column" => "mailmaga_flg", "convert" => "n" ), 
     298                                 ); 
     299 
     300        //---- 登録除外用カラム配列 
     301        $arrRejectRegistColumn = array("year", "month", "day", "email02", "email_mobile02", "password02"); 
     302 
     303        if ($_SERVER["REQUEST_METHOD"] == "POST") { 
     304 
     305            //-- POSTデータの引き継ぎ 
     306            $this->arrForm = $_POST; 
     307 
     308            if($this->arrForm['year'] == '----') { 
     309                $this->arrForm['year'] = ''; 
     310            } 
     311 
     312            $this->arrForm['email'] = strtolower($this->arrForm['email']);      // emailはすべて小文字で処理 
     313 
     314            //-- 入力データの変換 
     315            $this->arrForm = $this->lfConvertParam($this->arrForm, $arrRegistColumn); 
     316 
     317            // 戻るボタン用処理 
     318            if (!empty($_POST["return"])) { 
     319                switch ($_POST["mode"]) { 
     320                case "complete": 
     321                    $_POST["mode"] = "set3"; 
     322                    break; 
     323                case "confirm": 
     324                    $_POST["mode"] = "set2"; 
     325                    break; 
     326                default: 
     327                    $_POST["mode"] = "set1"; 
     328                    break; 
     329                } 
     330            } 
     331 
     332            //-- 入力エラーチェック 
     333            if ($_POST["mode"] == "set1") { 
     334                $this->arrErr = $this->lfErrorCheck1($this->arrForm); 
     335                $this->tpl_mainpage = 'entry/index.tpl'; 
     336                $this->tpl_title = '会員登録(1/3)'; 
     337            } elseif ($_POST["mode"] == "set2") { 
     338                $this->arrErr = $this->lfErrorCheck2($this->arrForm); 
     339                $this->tpl_mainpage = 'entry/set1.tpl'; 
     340                $this->tpl_title = '会員登録(2/3)'; 
     341            } else { 
     342                $this->arrErr = $this->lfErrorCheck3($this->arrForm); 
     343                $this->tpl_mainpage = 'entry/set2.tpl'; 
     344                $this->tpl_title = '会員登録(3/3)'; 
     345            } 
     346 
     347            foreach($this->arrForm as $key => $val) { 
     348                $this->$key = $val; 
     349            } 
     350 
     351            if ($this->arrErr || !empty($_POST["return"])) {        // 入力エラーのチェック 
     352 
     353                //-- データの設定 
     354                if ($_POST["mode"] == "set1") { 
     355                    $checkVal = array("email", "password", "reminder", "reminder_answer", "name01", "name02", "kana01", "kana02"); 
     356                } elseif ($_POST["mode"] == "set2") { 
     357                    $checkVal = array("sex", "year", "month", "day", "zip01", "zip02"); 
     358                } else { 
     359                    $checkVal = array("pref", "addr01", "addr02", "tel01", "tel02", "tel03", "mail_flag"); 
     360                } 
     361 
     362                foreach($this->arrForm as $key => $val) { 
     363                    if ($key != "mode" && $key != "submit" && $key != "return" && $key != session_name() && !in_array($key, $checkVal)) 
     364                        $this->list_data[ $key ] = $val; 
     365                } 
     366 
     367 
     368 
     369            } else { 
     370 
     371                //-- テンプレート設定 
     372                if ($_POST["mode"] == "set1") { 
     373                    $this->tpl_mainpage = 'entry/set1.tpl'; 
     374                    $this->tpl_title = '会員登録(2/3)'; 
     375                } elseif ($_POST["mode"] == "set2") { 
     376                    $this->tpl_mainpage = 'entry/set2.tpl'; 
     377                    $this->tpl_title = '会員登録(3/3)'; 
     378 
     379                    if (@$this->arrForm['pref'] == "" && @$this->arrForm['addr01'] == "" && @$this->arrForm['addr02'] == "") { 
     380                        $address = $this->lfGetAddress($_REQUEST['zip01'].$_REQUEST['zip02']); 
     381                        $this->pref = @$address[0]['state']; 
     382                        $this->addr01 = @$address[0]['city'] . @$address[0]['town']; 
     383                    } 
     384                } elseif ($_POST["mode"] == "confirm") { 
     385                    //パスワード表示 
     386                    $passlen = strlen($this->arrForm['password']); 
     387                    $this->passlen = $this->lfPassLen($passlen); 
     388 
     389                    //メール受け取り 
     390                    if (strtolower($this->arrForm['mail_flag']) == "on") { 
     391                        $this->arrForm['mail_flag']  = "2"; 
     392                    } else { 
     393                        $this->arrForm['mail_flag']  = "3"; 
     394                    } 
     395 
     396                    $this->tpl_mainpage = 'entry/confirm.tpl'; 
     397                    $this->tpl_title = '会員登録(確認ページ)'; 
     398 
     399                } 
     400 
     401                //-- データ設定 
     402                unset($this->list_data); 
     403                if ($_POST["mode"] == "set1") { 
     404                    $checkVal = array("sex", "year", "month", "day", "zip01", "zip02"); 
     405                } elseif ($_POST["mode"] == "set2") { 
     406                    $checkVal = array("pref", "addr01", "addr02", "tel01", "tel02", "tel03", "mail_flag"); 
     407                } else { 
     408                    $checkVal = array(); 
     409                } 
     410 
     411                foreach($this->arrForm as $key => $val) { 
     412                    if ($key != "mode" && $key != "submit" && $key != "confirm" && $key != "return" && $key != session_name() && !in_array($key, $checkVal)) { 
     413                        $this->list_data[ $key ] = $val; 
     414                    } 
     415                } 
     416 
     417 
     418                //-- 仮登録と完了画面 
     419                if ($_POST["mode"] == "complete") { 
     420 
     421                    // 確認画面で再度エラーチェックを行う。(画面1) 
     422                    $arrErr = $this->lfErrorCheck1($this->arrForm); 
     423                    if(count($arrErr) > 0){ 
     424                        $this->tpl_mainpage = 'entry/index.tpl'; 
     425                        $this->tpl_title = '会員登録(1/3)'; 
     426                        $this->arrErr = $arrErr; 
     427                        //---- ページ表示 
     428                        $objView->assignobj($this); 
     429                        $objView->display(SITE_FRAME); 
     430                        exit(); 
     431                    } 
     432 
     433                    // 確認画面で再度エラーチェックを行う。(画面2) 
     434                    $arrErr = $this->lfErrorCheck2($this->arrForm); 
     435                    if(count($arrErr) > 0){ 
     436                        $this->tpl_mainpage = 'entry/set1.tpl'; 
     437                        $this->tpl_title = '会員登録(2/3)'; 
     438                        $this->arrErr = $arrErr; 
     439                        //---- ページ表示 
     440                        $objView->assignobj($this); 
     441                        $objView->display(SITE_FRAME); 
     442                        exit(); 
     443                    } 
     444 
     445                    // 確認画面で再度エラーチェックを行う。(画面3) 
     446                    $arrErr = $this->lfErrorCheck3($this->arrForm); 
     447                    if(count($arrErr) > 0){ 
     448                        $this->tpl_mainpage = 'entry/set2.tpl'; 
     449                        $this->tpl_title = '会員登録(3/3)'; 
     450                        $this->arrErr = $arrErr; 
     451                        //---- ページ表示 
     452                        $objView->assignobj($this); 
     453                        $objView->display(SITE_FRAME); 
     454                        exit(); 
     455                    } 
     456 
     457                    $this->uniqid = $this->lfRegistData ($this->arrForm, $arrRegistColumn, $arrRejectRegistColumn, CUSTOMER_CONFIRM_MAIL, true, $this->arrForm["email"); 
     458 
     459                    // 空メールを受信済みの場合はすぐに本登録完了にする。 
     460                    if (isset($_SESSION['mobile']['kara_mail_from'])) { 
     461 
     462                        $param = array("mode" => "regist", 
     463                                       "id" => $this->uniqid, 
     464                                       session_name() => session_id()); 
     465                        $this->sendRedirect($this->getLocation(MOBILE_URL_DIR . "regist/index.php". $param); 
     466                        exit; 
     467                    } 
     468 
     469                    $this->tpl_mainpage = 'entry/complete.tpl'; 
     470                    $this->tpl_title = '会員登録(完了ページ)'; 
     471 
     472                    $objMobile->sfMobileSetExtSessionId('id', $this->uniqid, 'regist/index.php'); 
     473 
     474                    // 仮登録完了メール送信 
     475                    $this->CONF = $CONF; 
     476                    $this->to_name01 = $_POST['name01']; 
     477                    $this->to_name02 = $_POST['name02']; 
     478                    $objMailText = new SC_MobileView(); 
     479                    $objMailText->assignobj($this); 
     480                    $objHelperMail = new SC_Helper_Mail_Ex(); 
     481 
     482                    // 仮会員が有効の場合 
     483                    if(CUSTOMER_CONFIRM_MAIL == true) { 
     484 
     485                        $subject = $objHelperMail->sfMakeSubject($objQuery, $objMailText, $this, '会員登録のご確認'); 
     486                        $toCustomerMail = $objMailText->fetch("mail_templates/customer_mail.tpl"); 
     487                    } else { 
     488                        $subject = $objHelperMail->sfMakesubject($objQuery, $objMailText, $this, '会員登録のご完了'); 
     489                        $toCustomerMail = $objMailText->fetch("mail_templates/customer_regist_mail.tpl"); 
     490                        // ログイン状態にする 
     491                        $objCustomer->setLogin($_POST["email"]); 
     492                    } 
     493 
     494                    $objMail = new GC_SendMail(); 
     495                    $objMail->setItem( 
     496                                      ''                                    // 宛先 
     497                                      , $subject                            // サブジェクト 
     498                                      , $toCustomerMail                 // 本文 
     499                                      , $CONF["email03"]                    // 配送元アドレス 
     500                                      , $CONF["shop_name"]              // 配送元 名前 
     501                                      , $CONF["email03"]                    // reply_to 
     502                                      , $CONF["email04"]                    // return_path 
     503                                      , $CONF["email04"]                    //  Errors_to 
     504                                      , $CONF["email01"]                    //  Bcc 
     505                                      ); 
     506                    // 宛先の設定 
     507                    $name = $_POST["name01"] . $_POST["name02"] ." 様"; 
     508                    $objMail->setTo($_POST["email"], $name); 
     509                    $objMail->sendMail(); 
     510 
     511                    // 完了ページに移動させる。 
     512                    $this->sendRedirect($this->getLocation("./complete.php", 
     513                                                           SC_Helper_Mobile_Ex::sessionIdArray()); 
     514                    exit; 
     515                } 
     516            } 
     517        } 
     518 
     519        //---- ページ表示 
     520        $objView->assignobj($this); 
     521        $objView->display(SITE_FRAME); 
     522    } 
     523 
     524    /** 
    220525     * デストラクタ. 
    221526     * 
     
    230535 
    231536    // 会員情報の登録 
    232     function lfRegistData ($array, $arrRegistColumn, $arrRejectRegistColumn, $confirm_flg) { 
     537    function lfRegistData ($array, $arrRegistColumn, $arrRejectRegistColumn, $confirm_flg, $isMobile = false, $email_mobile = "") { 
    233538        $objConn = new SC_DbConn(); 
    234539 
     
    287592        $arrRegist["update_date"] = "now()";    // 更新日 
    288593        $arrRegist["first_buy_date"] = "";      // 最初の購入日 
     594 
     595        if ($isMobile) { 
     596            // 携帯メールアドレス 
     597            $arrRegist['email_mobile'] = $arrRegist['email']; 
     598        } 
    289599 
    290600        //-- 仮登録実行 
     
    425735        return $ret; 
    426736    } 
     737 
     738    // }}} 
     739    // {{{ mobile functions 
     740 
     741    // 郵便番号から住所の取得 
     742    function lfGetAddress($zipcode) { 
     743 
     744        $conn = new SC_DBconn(ZIP_DSN); 
     745 
     746        // 郵便番号検索文作成 
     747        $zipcode = mb_convert_kana($zipcode ,"n"); 
     748        $sqlse = "SELECT state, city, town FROM mtb_zip WHERE zipcode = ?"; 
     749 
     750        $data_list = $conn->getAll($sqlse, array($zipcode)); 
     751 
     752        // インデックスと値を反転させる。 
     753        $arrREV_PREF = array_flip($this->arrPref); 
     754 
     755        /* 
     756         総務省からダウンロードしたデータをそのままインポートすると 
     757         以下のような文字列が入っているので  対策する。 
     758         ・(1・19丁目) 
     759         ・以下に掲載がない場合 
     760        */ 
     761        $town =  $data_list[0]['town']; 
     762        $town = ereg_replace("(.*)$","",$town); 
     763        $town = ereg_replace("以下に掲載がない場合","",$town); 
     764        $data_list[0]['town'] = $town; 
     765        $data_list[0]['state'] = $arrREV_PREF[$data_list[0]['state']]; 
     766 
     767        return $data_list; 
     768    } 
     769 
     770    //---- 入力エラーチェック 
     771    function lfErrorCheck1($array) { 
     772 
     773        $objErr = new SC_CheckError($array); 
     774        $objDb = new SC_Helper_DB_Ex(); 
     775 
     776        $objErr->doFunc(array("お名前(姓)", 'name01', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
     777        $objErr->doFunc(array("お名前(名)", 'name02', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" , "MAX_LENGTH_CHECK")); 
     778        $objErr->doFunc(array("お名前(カナ/姓)", 'kana01', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 
     779        $objErr->doFunc(array("お名前(カナ/名)", 'kana02', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 
     780        $objErr->doFunc(array('メールアドレス', "email", MTEXT_LEN) ,array("NO_SPTAB", "EXIST_CHECK", "EMAIL_CHECK", "SPTAB_CHECK" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK", "MOBILE_EMAIL_CHECK")); 
     781 
     782        //現会員の判定 → 現会員もしくは仮登録中は、メアド一意が前提になってるので同じメアドで登録不可 
     783        if (strlen($array["email"]) > 0) { 
     784            $objQuery = new SC_Query(); 
     785            $arrRet = $objQuery->select("email, update_date, del_flg", "dtb_customer","email ILIKE ? OR email_mobile ILIKE ? ORDER BY del_flg", array($array["email"], $array["email"])); 
     786 
     787            if(count($arrRet) > 0) { 
     788                if($arrRet[0]['del_flg'] != '1') { 
     789                    // 会員である場合 
     790                    $objErr->arrErr["email"] .= "※ すでに会員登録で使用されているメールアドレスです。<br />"; 
     791                } else { 
     792                    // 退会した会員である場合 
     793                    $leave_time = SC_Utils_Ex::sfDBDatetoTime($arrRet[0]['update_date']); 
     794                    $now_time = time(); 
     795                    $pass_time = $now_time - $leave_time; 
     796                    // 退会から何時間-経過しているか判定する。 
     797                    $limit_time = ENTRY_LIMIT_HOUR * 3600; 
     798                    if($pass_time < $limit_time) { 
     799                        $objErr->arrErr["email"] .= "※ 退会から一定期間の間は、同じメールアドレスを使用することはできません。<br />"; 
     800                    } 
     801                } 
     802            } 
     803        } 
     804 
     805        $objErr->doFunc(array("パスワード", 'password', PASSWORD_LEN1, PASSWORD_LEN2), array("EXIST_CHECK", "SPTAB_CHECK" ,"ALNUM_CHECK", "NUM_RANGE_CHECK")); 
     806        $objErr->doFunc(array("パスワード確認用の質問", "reminder") ,array("SELECT_CHECK", "NUM_CHECK")); 
     807        $objErr->doFunc(array("パスワード確認用の質問の答え", "reminder_answer", STEXT_LEN) ,array("EXIST_CHECK","SPTAB_CHECK" , "MAX_LENGTH_CHECK")); 
     808 
     809        return $objErr->arrErr; 
     810    } 
     811 
     812    //---- 入力エラーチェック 
     813    function lfErrorCheck2($array) { 
     814        $objErr = new SC_CheckError($array); 
     815 
     816        $objErr->doFunc(array("郵便番号1", "zip01", ZIP01_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
     817        $objErr->doFunc(array("郵便番号2", "zip02", ZIP02_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
     818        $objErr->doFunc(array("郵便番号", "zip01", "zip02"), array("ALL_EXIST_CHECK")); 
     819 
     820        $objErr->doFunc(array("性別", "sex") ,array("SELECT_CHECK", "NUM_CHECK")); 
     821        $objErr->doFunc(array("生年月日 (年)", "year", 4), array("EXIST_CHECK", "SPTAB_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); 
     822        if (!isset($objErr->arrErr['year'])) { 
     823            $objErr->doFunc(array("生年月日 (年)", "year", $this->objDate->getStartYear()), array("MIN_CHECK")); 
     824            $objErr->doFunc(array("生年月日 (年)", "year", $this->objDate->getEndYear()), array("MAX_CHECK")); 
     825        } 
     826        $objErr->doFunc(array("生年月日 (月日)", "month", "day"), array("SELECT_CHECK")); 
     827        if (!isset($objErr->arrErr['year']) && !isset($objErr->arrErr['month']) && !isset($objErr->arrErr['day'])) { 
     828            $objErr->doFunc(array("生年月日", "year", "month", "day"), array("CHECK_DATE")); 
     829        } 
     830 
     831        return $objErr->arrErr; 
     832    } 
     833 
     834    //---- 入力エラーチェック 
     835    function lfErrorCheck3($array) { 
     836        $objErr = new SC_CheckError($array); 
     837 
     838        $objErr->doFunc(array("都道府県", 'pref'), array("SELECT_CHECK","NUM_CHECK")); 
     839        $objErr->doFunc(array("市区町村", "addr01", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
     840        $objErr->doFunc(array("番地", "addr02", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
     841        $objErr->doFunc(array("電話番号1", 'tel01'), array("EXIST_CHECK","SPTAB_CHECK" )); 
     842        $objErr->doFunc(array("電話番号2", 'tel02'), array("EXIST_CHECK","SPTAB_CHECK" )); 
     843        $objErr->doFunc(array("電話番号3", 'tel03'), array("EXIST_CHECK","SPTAB_CHECK" )); 
     844        $objErr->doFunc(array("電話番号", "tel01", "tel02", "tel03",TEL_ITEM_LEN) ,array("TEL_CHECK")); 
     845 
     846        return $objErr->arrErr; 
     847    } 
     848 
    427849} 
    428850?> 
  • branches/feature-module-update/data/class/pages/entry/LC_Page_Entry_Kiyaku.php

    r15532 r16132  
    6868 
    6969    /** 
     70     * モバイルページを初期化する. 
     71     * 
     72     * @return void 
     73     */ 
     74    function mobileInit() { 
     75        $this->init(); 
     76    } 
     77 
     78    /** 
     79     * Page のプロセス(モバイル). 
     80     * 
     81     * @return void 
     82     */ 
     83    function mobileProcess() { 
     84        $objView = new SC_MobileView(); 
     85        $objCustomer = new SC_Customer(); 
     86 
     87        $offset = isset($_REQUEST['offset']) ? $_REQUEST['offset'] : 0; 
     88        $next = $offset; 
     89 
     90        // レイアウトデザインを取得 
     91        $objLayout = new SC_Helper_PageLayout_Ex(); 
     92        $objLayout->sfGetPageLayout($this, false, DEF_LAYOUT); 
     93 
     94        // 規約内容の取得 
     95        $objQuery = new SC_Query(); 
     96        $count = $objQuery->count("dtb_kiyaku", "del_flg <> 1"); 
     97        $objQuery->setorder("rank DESC"); 
     98        $objQuery->setlimitoffset(1, $offset); 
     99        $arrRet = $objQuery->select("kiyaku_title, kiyaku_text", "dtb_kiyaku", "del_flg <> 1"); 
     100 
     101        if($count > $offset + 1){ 
     102            $next++; 
     103        } else { 
     104            $next = -1; 
     105        } 
     106 
     107        $max = count($arrRet); 
     108        $this->tpl_kiyaku_text = ""; 
     109        for ($i = 0; $i < $max; $i++) { 
     110            $this->tpl_kiyaku_text.=$arrRet[$i]['kiyaku_title'] . "\n\n"; 
     111            $this->tpl_kiyaku_text.=$arrRet[$i]['kiyaku_text'] . "\n\n"; 
     112        } 
     113 
     114        $objView->assign("offset", $next); 
     115        $objView->assignobj($this); 
     116        $objView->display(SITE_FRAME); 
     117    } 
     118 
     119    /** 
    70120     * デストラクタ. 
    71121     * 
  • branches/feature-module-update/html/mobile/entry/index.php

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