Ignore:
Timestamp:
2011/01/05 22:10:58 (15 years ago)
Author:
fukuda
Message:

#880(mobile/sphoneディレクトリを削除)に対応。まずmobileのみ意図通りの動作になるように一部コミット(entryディレクトリ) 登録完了時に無限ループする?

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/class/pages/entry/LC_Page_Entry.php

    r19805 r19830  
    171171        $CONF = $objDb->sfGetBasisData(); 
    172172 
    173         $ssl_url  = rtrim(HTTPS_URL,"/"); 
    174         $ssl_url .= $_SERVER['PHP_SELF']; 
    175  
    176         // 規約ページからの遷移でなければエラー画面へ遷移する 
    177         if (empty($_POST) && !preg_match('/kiyaku.php/', basename($_SERVER['HTTP_REFERER']))) { 
    178             SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, "", true); 
    179         } 
    180  
    181         //---- 登録用カラム配列 
     173        // PC時は規約ページからの遷移でなければエラー画面へ遷移する 
     174        $this->lfCheckReferer(); 
     175         
     176        //---- 登録用カラム配列 
    182177        $arrRegistColumn = array( 
    183178                                     array(  "column" => "name01", "convert" => "aKV" ), 
     
    217212 
    218213        if ($_SERVER["REQUEST_METHOD"] == "POST") { 
    219  
     214             
     215            //CSRF対策 
    220216            if (!SC_Helper_Session_Ex::isValidToken()) { 
    221217                SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, "", true); 
     
    223219 
    224220            // 空白・改行の削除 
    225             $_POST["name01"] = preg_replace('/^[  \r\n]*(.*?)[  \r\n]*$/u', '$1', $_POST["name01"]); 
    226             $_POST["name02"] = preg_replace('/^[  \r\n]*(.*?)[  \r\n]*$/u', '$1', $_POST["name02"]); 
    227             $_POST["kana01"] = preg_replace('/^[  \r\n]*(.*?)[  \r\n]*$/u', '$1', $_POST["kana01"]); 
    228             $_POST["kana02"] = preg_replace('/^[  \r\n]*(.*?)[  \r\n]*$/u', '$1', $_POST["kana02"]); 
    229             $_POST["zip01"] = preg_replace('/^[  \r\n]*(.*?)[  \r\n]*$/u', '$1', $_POST["zip01"]); 
    230             $_POST["zip02"] = preg_replace('/^[  \r\n]*(.*?)[  \r\n]*$/u', '$1', $_POST["zip02"]); 
    231             $_POST["addr01"] = preg_replace('/^[  \r\n]*(.*?)[  \r\n]*$/u', '$1', $_POST["addr01"]); 
    232             $_POST["addr02"] = preg_replace('/^[  \r\n]*(.*?)[  \r\n]*$/u', '$1', $_POST["addr02"]); 
    233             $_POST["tel01"] = preg_replace('/^[  \r\n]*(.*?)[  \r\n]*$/u', '$1', $_POST["tel01"]); 
    234             $_POST["tel02"] = preg_replace('/^[  \r\n]*(.*?)[  \r\n]*$/u', '$1', $_POST["tel02"]); 
    235             $_POST["tel03"] = preg_replace('/^[  \r\n]*(.*?)[  \r\n]*$/u', '$1', $_POST["tel03"]); 
    236             $_POST["fax01"] = preg_replace('/^[  \r\n]*(.*?)[  \r\n]*$/u', '$1', $_POST["fax01"]); 
    237             $_POST["fax02"] = preg_replace('/^[  \r\n]*(.*?)[  \r\n]*$/u', '$1', $_POST["fax02"]); 
    238             $_POST["fax03"] = preg_replace('/^[  \r\n]*(.*?)[  \r\n]*$/u', '$1', $_POST["fax03"]); 
    239             $_POST["email"] = preg_replace('/^[  \r\n]*(.*?)[  \r\n]*$/u', '$1', $_POST["email"]); 
    240             $_POST["email02"] = preg_replace('/^[  \r\n]*(.*?)[  \r\n]*$/u', '$1', $_POST["email02"]); 
    241             $_POST["password"] = preg_replace('/^[  \r\n]*(.*?)[  \r\n]*$/u', '$1', $_POST["password"]); 
    242             $_POST["password02"] = preg_replace('/^[  \r\n]*(.*?)[  \r\n]*$/u', '$1', $_POST["password02"]); 
    243             $_POST["reminder_answer"] = preg_replace('/^[  \r\n]*(.*?)[  \r\n]*$/u', '$1', $_POST["reminder_answer"]); 
     221            foreach ($arrRegistColumn as $item){ 
     222                $_POST["${item["column"]}"] = preg_replace('/^[  \r\n]*(.*?)[  \r\n]*$/u', '$1', $_POST["${item["column"]}"]); 
     223            } 
    244224 
    245225            //-- POSTデータの引き継ぎ 
     
    247227 
    248228            // SSL用 
    249             $this->arrForm['ssl_url'] = $ssl_url; 
    250  
     229            $this->arrForm['ssl_url'] = rtrim(HTTPS_URL,"/").$_SERVER['PHP_SELF']; 
     230 
     231            // 
    251232            $this->arrForm['email'] = strtolower($this->arrForm['email']);      // emailはすべて小文字で処理 
    252233            $this->arrForm['email02'] = strtolower($this->arrForm['email02']);  // emailはすべて小文字で処理 
     
    254235            //-- 入力データの変換 
    255236            $this->arrForm = $this->lfConvertParam($this->arrForm, $arrRegistColumn); 
    256  
     237                // mobile用 
     238                if (!empty($_POST["return"])) { 
     239                    $_POST["mode"] = "return"; 
     240                } 
     241 
     242                 
    257243            //-- 入力エラーチェック 
    258244            $this->arrErr = $this->lfErrorCheck($this->arrForm); 
    259  
     245              
    260246            if ($this->arrErr || $_POST["mode"] == "return") {      // 入力エラーのチェック 
    261247                foreach($arrRegistColumn as $key) { 
    262248                    $this->$key['column'] = $this->arrForm[$key['column']]; 
    263                 } 
    264  
     249                }             
    265250            } else { 
    266  
     251                
    267252                //-- 確認 
    268253                if ($_POST["mode"] == "confirm") { 
    269254                    foreach($this->arrForm as $key => $val) { 
    270                         if ($key != "mode" && $key != "subm") $this->list_data[ $key ] = $val; 
     255                        if ($key != "mode" && $key != "subm" && $key != "transactionid") $this->list_data[ $key ] = $val; 
    271256                    } 
    272257                    //パスワード表示 
     
    329314                    $this->objDisplay->redirect($this->getLocation("./complete.php", array("ci" => $customer_id))); 
    330315                    exit; 
     316                     
    331317                } 
    332318            } 
    333319        } 
    334  
    335320        $this->transactionid = SC_Helper_Session_Ex::getToken(); 
    336     } 
    337  
    338     /** 
    339      * モバイルページを初期化する. 
    340      * 
    341      * @return void 
    342      */ 
    343     function mobileInit() { 
    344         $this->init(); 
    345         $this->tpl_title .= '会員登録(1/3)';            // ページタイトル 
    346     } 
    347  
    348     /** 
    349      * Page のプロセス(モバイル). 
    350      * 
    351      * @return void 
    352      */ 
    353     function mobileProcess() { 
    354         $this->mobileAction(); 
    355         $this->sendResponse(); 
    356     } 
    357  
    358     /** 
    359      * Page のアクション(モバイル). 
    360      * 
    361      * @return void 
    362      */ 
    363     function mobileAction() { 
    364         //---- ページ初期設定 
    365         $objDb = new SC_Helper_DB_Ex(); 
    366         $objMobile = new SC_Helper_Mobile_Ex(); 
    367         $CONF = $objDb->sfGetBasisData();                   // 店舗基本情報 
    368         $objView = new SC_MobileView(); 
    369         $objCustomer = new SC_Customer(); 
    370  
    371         // 空メール 
    372         if (isset($_SESSION['mobile']['kara_mail_from'])) { 
    373             $_POST['email'] = $_SESSION['mobile']['kara_mail_from']; 
    374             $this->tpl_kara_mail_from = $_POST['email']; 
    375         } elseif (MOBILE_USE_KARA_MAIL) { 
    376             $token = $objMobile->gfPrepareKaraMail('entry/' . DIR_INDEX_URL); 
    377             if ($token !== false) { 
    378                 $this->tpl_mainpage = 'entry/mail.tpl'; 
    379                 $this->tpl_title = '会員登録(空メール)'; 
    380                 $this->tpl_kara_mail_to = MOBILE_KARA_MAIL_ADDRESS_USER . MOBILE_KARA_MAIL_ADDRESS_DELIMITER . 'entry_' . $token . '@' . MOBILE_KARA_MAIL_ADDRESS_DOMAIN; 
    381                 $this->tpl_from_address = $CONF['email03']; 
    382             } 
    383         } 
    384  
    385         //---- 登録用カラム配列 
    386         $arrRegistColumn = array( 
    387                                  array(  "column" => "name01", "convert" => "aKV" ), 
    388                                  array(  "column" => "name02", "convert" => "aKV" ), 
    389                                  array(  "column" => "kana01", "convert" => "CKV" ), 
    390                                  array(  "column" => "kana02", "convert" => "CKV" ), 
    391                                  array(  "column" => "zip01", "convert" => "n" ), 
    392                                  array(  "column" => "zip02", "convert" => "n" ), 
    393                                  array(  "column" => "pref", "convert" => "n" ), 
    394                                  array(  "column" => "addr01", "convert" => "aKV" ), 
    395                                  array(  "column" => "addr02", "convert" => "aKV" ), 
    396                                  array(  "column" => "email", "convert" => "a" ), 
    397                                  array(  "column" => "email02", "convert" => "a" ), 
    398                                  array(  "column" => "email_mobile", "convert" => "a" ), 
    399                                  array(  "column" => "email_mobile02", "convert" => "a" ), 
    400                                  array(  "column" => "tel01", "convert" => "n" ), 
    401                                  array(  "column" => "tel02", "convert" => "n" ), 
    402                                  array(  "column" => "tel03", "convert" => "n" ), 
    403                                  array(  "column" => "fax01", "convert" => "n" ), 
    404                                  array(  "column" => "fax02", "convert" => "n" ), 
    405                                  array(  "column" => "fax03", "convert" => "n" ), 
    406                                  array(  "column" => "sex", "convert" => "n" ), 
    407                                  array(  "column" => "job", "convert" => "n" ), 
    408                                  array(  "column" => "birth", "convert" => "n" ), 
    409                                  array(  "column" => "year", "convert" => "n" ), 
    410                                  array(  "column" => "month", "convert" => "n" ), 
    411                                  array(  "column" => "day", "convert" => "n" ), 
    412                                  array(  "column" => "reminder", "convert" => "n" ), 
    413                                  array(  "column" => "reminder_answer", "convert" => "aKV"), 
    414                                  array(  "column" => "password", "convert" => "a" ), 
    415                                  array(  "column" => "password02", "convert" => "a" ), 
    416                                  array(  "column" => "mailmaga_flg", "convert" => "n" ), 
    417                                  ); 
    418  
    419         //---- 登録除外用カラム配列 
    420         $arrRejectRegistColumn = array("year", "month", "day", "email02", "email_mobile02", "password02"); 
    421  
    422         if ($_SERVER["REQUEST_METHOD"] == "POST") { 
    423  
    424             //-- POSTデータの引き継ぎ 
    425             $this->arrForm = $_POST; 
    426             $this->arrForm['email'] = strtolower($this->arrForm['email']);      // emailはすべて小文字で処理 
    427  
    428             //-- 入力データの変換 
    429             $this->arrForm = $this->lfConvertParam($this->arrForm, $arrRegistColumn); 
    430  
    431             // 戻るボタン用処理 
    432             if (!empty($_POST["return"])) { 
    433                 switch ($_POST["mode"]) { 
    434                 case "complete": 
    435                     $_POST["mode"] = "set3"; 
    436                     break; 
    437                 case "confirm": 
    438                     $_POST["mode"] = "set2"; 
    439                     break; 
    440                 default: 
    441                     $_POST["mode"] = "set1"; 
    442                     break; 
    443                 } 
    444             } 
    445  
    446             //-- 入力エラーチェック 
    447             if ($_POST["mode"] == "set1") { 
    448                 $this->arrErr = $this->lfErrorCheck1($this->arrForm); 
    449                 $this->tpl_mainpage = 'entry/index.tpl'; 
    450                 $this->tpl_title = '会員登録(1/3)'; 
    451             } elseif ($_POST["mode"] == "set2") { 
    452                 $this->arrErr = $this->lfErrorCheck2($this->arrForm); 
    453                 $this->tpl_mainpage = 'entry/set1.tpl'; 
    454                 $this->tpl_title = '会員登録(2/3)'; 
    455             } else { 
    456                 $this->arrErr = $this->lfErrorCheck3($this->arrForm); 
    457                 $this->tpl_mainpage = 'entry/set2.tpl'; 
    458                 $this->tpl_title = '会員登録(3/3)'; 
    459             } 
    460  
    461             foreach($arrRegistColumn as $key) { 
    462                 $this->$key['column'] = $this->arrForm[$key['column']]; 
    463             } 
    464  
    465             if ($this->arrErr || !empty($_POST["return"])) {        // 入力エラーのチェック 
    466  
    467                 //-- データの設定 
    468                 if ($_POST["mode"] == "set1") { 
    469                     $checkVal = array("email", "password", "reminder", "reminder_answer", "name01", "name02", "kana01", "kana02"); 
    470                 } elseif ($_POST["mode"] == "set2") { 
    471                     $checkVal = array("sex", "year", "month", "day", "zip01", "zip02"); 
    472                 } else { 
    473                     $checkVal = array("pref", "addr01", "addr02", "tel01", "tel02", "tel03", "mailmaga_flg"); 
    474                 } 
    475  
    476                 foreach($this->arrForm as $key => $val) { 
    477                     if ($key != "mode" && $key != "submit" && $key != "return" && $key != session_name() && !in_array($key, $checkVal)) 
    478                         $this->list_data[ $key ] = $val; 
    479                 } 
    480  
    481  
    482  
    483             } else { 
    484  
    485                 //-- テンプレート設定 
    486                 if ($_POST["mode"] == "set1") { 
    487                     $this->tpl_mainpage = 'entry/set1.tpl'; 
    488                     $this->tpl_title = '会員登録(2/3)'; 
    489                 } elseif ($_POST["mode"] == "set2") { 
    490                     $this->tpl_mainpage = 'entry/set2.tpl'; 
    491                     $this->tpl_title = '会員登録(3/3)'; 
    492  
    493                     if (@$this->arrForm['pref'] == "" && @$this->arrForm['addr01'] == "" && @$this->arrForm['addr02'] == "") { 
    494                         $address = SC_Utils_Ex::sfGetAddress($_REQUEST['zip01'].$_REQUEST['zip02']); 
    495                         $this->pref = @$address[0]['state']; 
    496                         $this->addr01 = @$address[0]['city'] . @$address[0]['town']; 
    497                     } 
    498                 } elseif ($_POST["mode"] == "confirm") { 
    499                     // パスワード表示 
    500                     $passlen = strlen($this->arrForm['password']); 
    501                     $this->passlen = $this->lfPassLen($passlen); 
    502  
    503                     // メール受け取り 
    504                     if (!isset($this->arrForm['mailmaga_flg'])) $this->arrForm['mailmaga_flg']  = ""; 
    505                     if (strtolower($this->arrForm['mailmaga_flg']) == "on") { 
    506                         $this->arrForm['mailmaga_flg']  = "2"; 
    507                     } else { 
    508                         $this->arrForm['mailmaga_flg']  = "3"; 
    509                     } 
    510  
    511                     $this->tpl_mainpage = 'entry/confirm.tpl'; 
    512                     $this->tpl_title = '会員登録(確認ページ)'; 
    513  
    514                 } 
    515  
    516                 //-- データ設定 
    517                 unset($this->list_data); 
    518                 if ($_POST["mode"] == "set1") { 
    519                     $checkVal = array("sex", "year", "month", "day", "zip01", "zip02"); 
    520                 } elseif ($_POST["mode"] == "set2") { 
    521                     $checkVal = array("pref", "addr01", "addr02", "tel01", "tel02", "tel03", "mailmaga_flg"); 
    522                 } else { 
    523                     $checkVal = array(); 
    524                 } 
    525  
    526                 foreach($this->arrForm as $key => $val) { 
    527                     if ($key != "mode" && $key != "submit" && $key != "confirm" && $key != "return" && $key != session_name() && !in_array($key, $checkVal)) { 
    528                         $this->list_data[ $key ] = $val; 
    529                     } 
    530                 } 
    531  
    532  
    533                 //-- 仮登録と完了画面 
    534                 if ($_POST["mode"] == "complete") { 
    535  
    536                     // 確認画面で再度エラーチェックを行う。(画面1) 
    537                     $arrErr = $this->lfErrorCheck1($this->arrForm); 
    538                     if(count($arrErr) > 0){ 
    539                         $this->tpl_mainpage = 'entry/index.tpl'; 
    540                         $this->tpl_title = '会員登録(1/3)'; 
    541                         $this->arrErr = $arrErr; 
    542                         //---- ページ表示 
    543                         $objView->assignobj($this); 
    544                         $objView->display(SITE_FRAME); 
    545                         exit(); 
    546                     } 
    547  
    548                     // 確認画面で再度エラーチェックを行う。(画面2) 
    549                     $arrErr = $this->lfErrorCheck2($this->arrForm); 
    550                     if(count($arrErr) > 0){ 
    551                         $this->tpl_mainpage = 'entry/set1.tpl'; 
    552                         $this->tpl_title = '会員登録(2/3)'; 
    553                         $this->arrErr = $arrErr; 
    554                         //---- ページ表示 
    555                         $objView->assignobj($this); 
    556                         $objView->display(SITE_FRAME); 
    557                         exit(); 
    558                     } 
    559  
    560                     // 確認画面で再度エラーチェックを行う。(画面3) 
    561                     $arrErr = $this->lfErrorCheck3($this->arrForm); 
    562                     if(count($arrErr) > 0){ 
    563                         $this->tpl_mainpage = 'entry/set2.tpl'; 
    564                         $this->tpl_title = '会員登録(3/3)'; 
    565                         $this->arrErr = $arrErr; 
    566                         //---- ページ表示 
    567                         $objView->assignobj($this); 
    568                         $objView->display(SITE_FRAME); 
    569                         exit(); 
    570                     } 
    571  
    572                     $this->CONF = $CONF; 
    573                     $this->uniqid = $this->lfRegistData ($this->arrForm, $arrRegistColumn, $arrRejectRegistColumn, CUSTOMER_CONFIRM_MAIL, true, $this->arrForm["email"]); 
    574  
    575                     // 空メールを受信済みの場合はすぐに本登録完了にする。 
    576                     if (isset($_SESSION['mobile']['kara_mail_from'])) { 
    577                         $param = array("mode" => "regist", 
    578                                        "id" => $this->uniqid, 
    579                                        session_name() => session_id()); 
    580                         $this->objDisplay->redirect($this->getLocation(MOBILE_URL_PATH . "regist/" . DIR_INDEX_URL, $param)); 
    581                         exit; 
    582                     } 
    583  
    584                     $this->tpl_mainpage = 'entry/complete.tpl'; 
    585                     $this->tpl_title = '会員登録(完了ページ)'; 
    586  
    587                     $objMobile->sfMobileSetExtSessionId('id', $this->uniqid, 'regist/' . DIR_INDEX_URL); 
    588  
    589                     // 仮登録完了メール送信 
    590                     $this->to_name01 = $_POST['name01']; 
    591                     $this->to_name02 = $_POST['name02']; 
    592                     $objMailText = new SC_MobileView(); 
    593                     $objMailText->assignobj($this); 
    594                     $objHelperMail = new SC_Helper_Mail_Ex(); 
    595                     $objQuery = new SC_Query(); 
    596  
    597                     // 仮会員が有効の場合 
    598                     if(CUSTOMER_CONFIRM_MAIL == true) { 
    599                         // Moba8パラメーターを保持する場合はカラム追加 
    600                         if (isset($_SESSION['a8'])) $this->etc_value = "&a8=". $_SESSION['a8']; 
    601                         $subject = $objHelperMail->sfMakeSubject('会員登録のご確認'); 
    602                         $toCustomerMail = $objMailText->fetch("mail_templates/customer_mail.tpl"); 
    603                     } else { 
    604                         $subject = $objHelperMail->sfMakeSubject('会員登録のご完了'); 
    605                         $toCustomerMail = $objMailText->fetch("mail_templates/customer_regist_mail.tpl"); 
    606                         // ログイン状態にする 
    607                         $objCustomer->setLogin($_POST["email"]); 
    608                     } 
    609  
    610                     $objMail = new SC_SendMail(); 
    611                     $objMail->setItem( 
    612                                         ''                  // 宛先 
    613                                       , $subject            // サブジェクト 
    614                                       , $toCustomerMail     // 本文 
    615                                       , $CONF["email03"]    // 配送元アドレス 
    616                                       , $CONF["shop_name"]  // 配送元 名前 
    617                                       , $CONF["email03"]    // reply_to 
    618                                       , $CONF["email04"]    // return_path 
    619                                       , $CONF["email04"]    // Errors_to 
    620                                       , $CONF["email01"]    // Bcc 
    621                     ); 
    622                     // 宛先の設定 
    623                     $name = $_POST["name01"] . $_POST["name02"] ." 様"; 
    624                     $objMail->setTo($_POST["email"], $name); 
    625                     $objMail->sendMail(); 
    626  
    627                     // 完了ページに移動させる。 
    628                     $this->objDisplay->redirect($this->getLocation("./complete.php")); 
    629                     exit; 
    630                 } 
    631             } 
    632         } 
    633321    } 
    634322 
     
    697385        /* 
    698386          secret_keyは、テーブルで重複許可されていない場合があるので、 
    699           本会員登録では利用されないがセットしておく。 
     387                          本会員登録では利用されないがセットしておく。 
    700388        */ 
    701389        $arrRegist["secret_key"] = $uniqid;     // 会員登録キー 
     
    718406        $arrRegist['customer_id'] = $objQuery->nextVal('dtb_customer_customer_id'); 
    719407        $objQuery->insert("dtb_customer", $arrRegist); 
    720  
    721  
    722     /* メルマガ会員機能は現在停止中 2007/03/07 
    723  
    724  
    725         //-- 非会員でメルマガ登録しているかの判定 
    726         $sql = "SELECT count(*) FROM dtb_customer_mail WHERE email = ?"; 
    727         $mailResult = $objConn->getOne($sql, array($arrRegist["email"])); 
    728  
    729         //-- メルマガ仮登録実行 
    730         $arrRegistMail["email"] = $arrRegist["email"]; 
    731         if ($array["mailmaga_flg"] == 1) { 
    732             $arrRegistMail["mailmaga_flg"] = 4; 
    733         } elseif ($array["mailmaga_flg"] == 2) { 
    734             $arrRegistMail["mailmaga_flg"] = 5; 
    735         } else { 
    736             $arrRegistMail["mailmaga_flg"] = 6; 
    737         } 
    738         $arrRegistMail["update_date"] = "now()"; 
    739  
    740         // 非会員でメルマガ登録している場合 
    741         if ($mailResult == 1) { 
    742             $objQuery->update("dtb_customer_mail", $arrRegistMail, "email = '" .addslashes($arrRegistMail["email"]). "'"); 
    743         } else {                // 新規登録の場合 
    744             $arrRegistMail["create_date"] = "now()"; 
    745             $objQuery->insert("dtb_customer_mail", $arrRegistMail); 
    746         } 
    747     */ 
     408         
    748409        $objQuery->commit(); 
    749410 
     
    784445        $objErr->doFunc(array("お名前(フリガナ・姓)", 'kana01', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 
    785446        $objErr->doFunc(array("お名前(フリガナ・名)", 'kana02', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 
     447        $objErr->doFunc(array("パスワード", 'password', PASSWORD_LEN1, PASSWORD_LEN2), array("EXIST_CHECK", "SPTAB_CHECK" ,"ALNUM_CHECK", "NUM_RANGE_CHECK")); 
     448        $objErr->doFunc(array("パスワード確認用の質問", "reminder") ,array("SELECT_CHECK", "NUM_CHECK")); 
     449        $objErr->doFunc(array("パスワード確認用の質問の答え", "reminder_answer", STEXT_LEN) ,array("EXIST_CHECK","SPTAB_CHECK" , "MAX_LENGTH_CHECK")); 
    786450        $objErr->doFunc(array("郵便番号1", "zip01", ZIP01_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
    787451        $objErr->doFunc(array("郵便番号2", "zip02", ZIP02_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
     
    790454        $objErr->doFunc(array("住所1", "addr01", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    791455        $objErr->doFunc(array("住所2", "addr02", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    792         $objErr->doFunc(array('メールアドレス', "email", MTEXT_LEN) ,array("NO_SPTAB", "EXIST_CHECK", "EMAIL_CHECK", "SPTAB_CHECK" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); 
    793         $objErr->doFunc(array('メールアドレス(確認)', "email02", MTEXT_LEN) ,array("NO_SPTAB", "EXIST_CHECK", "EMAIL_CHECK","SPTAB_CHECK" , "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); 
    794         $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', "email", "email02") ,array("EQUAL_CHECK")); 
     456        $objErr->doFunc(array("お電話番号1", 'tel01'), array("EXIST_CHECK","SPTAB_CHECK" )); 
     457        $objErr->doFunc(array("お電話番号2", 'tel02'), array("EXIST_CHECK","SPTAB_CHECK" )); 
     458        $objErr->doFunc(array("お電話番号3", 'tel03'), array("EXIST_CHECK","SPTAB_CHECK" )); 
     459        $objErr->doFunc(array("お電話番号", "tel01", "tel02", "tel03") ,array("TEL_CHECK")); 
     460        $objErr->doFunc(array("性別", "sex") ,array("SELECT_CHECK", "NUM_CHECK")); 
     461        $objErr->doFunc(array("生年月日", "year", "month", "day"), array("CHECK_BIRTHDAY")); 
     462         
     463        if (Net_UserAgent_Mobile::isMobile() === false){ 
     464            $objErr->doFunc(array('メールアドレス', "email", MTEXT_LEN) ,array("NO_SPTAB", "EXIST_CHECK", "EMAIL_CHECK", "SPTAB_CHECK" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); 
     465            $objErr->doFunc(array("FAX番号1", 'fax01'), array("SPTAB_CHECK")); 
     466            $objErr->doFunc(array("FAX番号2", 'fax02'), array("SPTAB_CHECK")); 
     467            $objErr->doFunc(array("FAX番号3", 'fax03'), array("SPTAB_CHECK")); 
     468            $objErr->doFunc(array("FAX番号", "fax01", "fax02", "fax03") ,array("TEL_CHECK")); 
     469            $objErr->doFunc(array("メールマガジン", "mailmaga_flg") ,array("SELECT_CHECK", "NUM_CHECK")); 
     470            $objErr->doFunc(array("メールマガジン", 'mailmaga_flg'), array("SELECT_CHECK")); 
     471            $objErr->doFunc(array("パスワード(確認)", 'password02', PASSWORD_LEN1, PASSWORD_LEN2), array("EXIST_CHECK", "SPTAB_CHECK" ,"ALNUM_CHECK", "NUM_RANGE_CHECK")); 
     472            $objErr->doFunc(array('パスワード', 'パスワード(確認)', "password", "password02") ,array("EQUAL_CHECK")); 
     473            $objErr->doFunc(array('メールアドレス(確認)', "email02", MTEXT_LEN) ,array("NO_SPTAB", "EXIST_CHECK", "EMAIL_CHECK","SPTAB_CHECK" , "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); 
     474            $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', "email", "email02") ,array("EQUAL_CHECK")); 
     475        } 
    795476 
    796477        // 現会員の判定 → 現会員もしくは仮登録中は、メアド一意が前提になってるので同じメアドで登録不可 
     
    819500            } 
    820501        } 
    821  
    822         $objErr->doFunc(array("お電話番号1", 'tel01'), array("EXIST_CHECK","SPTAB_CHECK" )); 
    823         $objErr->doFunc(array("お電話番号2", 'tel02'), array("EXIST_CHECK","SPTAB_CHECK" )); 
    824         $objErr->doFunc(array("お電話番号3", 'tel03'), array("EXIST_CHECK","SPTAB_CHECK" )); 
    825         $objErr->doFunc(array("お電話番号", "tel01", "tel02", "tel03") ,array("TEL_CHECK")); 
    826         $objErr->doFunc(array("FAX番号1", 'fax01'), array("SPTAB_CHECK")); 
    827         $objErr->doFunc(array("FAX番号2", 'fax02'), array("SPTAB_CHECK")); 
    828         $objErr->doFunc(array("FAX番号3", 'fax03'), array("SPTAB_CHECK")); 
    829         $objErr->doFunc(array("FAX番号", "fax01", "fax02", "fax03") ,array("TEL_CHECK")); 
    830         $objErr->doFunc(array("ご性別", "sex") ,array("SELECT_CHECK", "NUM_CHECK")); 
    831         $objErr->doFunc(array("パスワード", 'password', PASSWORD_LEN1, PASSWORD_LEN2), array("EXIST_CHECK", "SPTAB_CHECK" ,"ALNUM_CHECK", "NUM_RANGE_CHECK")); 
    832         $objErr->doFunc(array("パスワード(確認)", 'password02', PASSWORD_LEN1, PASSWORD_LEN2), array("EXIST_CHECK", "SPTAB_CHECK" ,"ALNUM_CHECK", "NUM_RANGE_CHECK")); 
    833         $objErr->doFunc(array('パスワード', 'パスワード(確認)', "password", "password02") ,array("EQUAL_CHECK")); 
    834         $objErr->doFunc(array("パスワードを忘れたときのヒント 質問", "reminder") ,array("SELECT_CHECK", "NUM_CHECK")); 
    835         $objErr->doFunc(array("パスワードを忘れたときのヒント 答え", "reminder_answer", STEXT_LEN) ,array("EXIST_CHECK","SPTAB_CHECK" , "MAX_LENGTH_CHECK")); 
    836         $objErr->doFunc(array("メールマガジン", "mailmaga_flg") ,array("SELECT_CHECK", "NUM_CHECK")); 
    837  
    838         $objErr->doFunc(array("生年月日", "year", "month", "day"), array("CHECK_BIRTHDAY")); 
    839         $objErr->doFunc(array("メールマガジン", 'mailmaga_flg'), array("SELECT_CHECK")); 
    840502        return $objErr->arrErr; 
    841503    } 
     
    851513        return $ret; 
    852514    } 
    853  
    854     // }}} 
    855     // {{{ mobile functions 
    856  
    857     //---- 入力エラーチェック 
    858     function lfErrorCheck1($array) { 
    859  
    860         $objErr = new SC_CheckError($array); 
    861         $objDb = new SC_Helper_DB_Ex(); 
    862  
    863         $objErr->doFunc(array("お名前(姓)", 'name01', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    864         $objErr->doFunc(array("お名前(名)", 'name02', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" , "MAX_LENGTH_CHECK")); 
    865         $objErr->doFunc(array("お名前(フリガナ・姓)", 'kana01', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 
    866         $objErr->doFunc(array("お名前(フリガナ・名)", 'kana02', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 
    867         $objErr->doFunc(array('メールアドレス', "email", MTEXT_LEN) ,array("NO_SPTAB", "EXIST_CHECK", "EMAIL_CHECK", "SPTAB_CHECK" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK", "MOBILE_EMAIL_CHECK")); 
    868  
    869         // 現会員の判定 → 現会員もしくは仮登録中は、メアド一意が前提になってるので同じメアドで登録不可 
    870         if (strlen($array["email"]) > 0) { 
    871             $array['email'] = strtolower($array['email']); 
    872             $objQuery = new SC_Query(); 
    873             $arrRet = $objQuery->select("email, update_date, del_flg", "dtb_customer","email = ? OR email_mobile = ? ORDER BY del_flg", array($array["email"], $array["email"])); 
    874  
    875             if(count($arrRet) > 0) { 
    876                 if($arrRet[0]['del_flg'] != '1') { 
    877                     // 会員である場合 
    878                     $objErr->arrErr["email"] .= "※ すでに会員登録で使用されているメールアドレスです。<br />"; 
    879                 } else { 
    880                     // 退会した会員である場合 
    881                     $leave_time = SC_Utils_Ex::sfDBDatetoTime($arrRet[0]['update_date']); 
    882                     $now_time = time(); 
    883                     $pass_time = $now_time - $leave_time; 
    884                     // 退会から何時間-経過しているか判定する。 
    885                     $limit_time = ENTRY_LIMIT_HOUR * 3600; 
    886                     if($pass_time < $limit_time) { 
    887                         $objErr->arrErr["email"] .= "※ 退会から一定期間の間は、同じメールアドレスを使用することはできません。<br />"; 
    888                     } 
    889                 } 
    890             } 
    891         } 
    892  
    893         $objErr->doFunc(array("パスワード", 'password', PASSWORD_LEN1, PASSWORD_LEN2), array("EXIST_CHECK", "SPTAB_CHECK" ,"ALNUM_CHECK", "NUM_RANGE_CHECK")); 
    894         $objErr->doFunc(array("パスワード確認用の質問", "reminder") ,array("SELECT_CHECK", "NUM_CHECK")); 
    895         $objErr->doFunc(array("パスワード確認用の質問の答え", "reminder_answer", STEXT_LEN) ,array("EXIST_CHECK","SPTAB_CHECK" , "MAX_LENGTH_CHECK")); 
    896  
    897         return $objErr->arrErr; 
    898     } 
    899  
    900     //---- 入力エラーチェック 
    901     function lfErrorCheck2($array) { 
    902         $objErr = new SC_CheckError($array); 
    903  
    904         $objErr->doFunc(array("郵便番号1", "zip01", ZIP01_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
    905         $objErr->doFunc(array("郵便番号2", "zip02", ZIP02_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
    906         $objErr->doFunc(array("郵便番号", "zip01", "zip02"), array("ALL_EXIST_CHECK")); 
    907  
    908         $objErr->doFunc(array("性別", "sex") ,array("SELECT_CHECK", "NUM_CHECK")); 
    909         $objErr->doFunc(array("生年月日", "year", "month", "day"), array("CHECK_BIRTHDAY")); 
    910  
    911         return $objErr->arrErr; 
    912     } 
    913  
    914     //---- 入力エラーチェック 
    915     function lfErrorCheck3($array) { 
    916         $objErr = new SC_CheckError($array); 
    917  
    918         $objErr->doFunc(array("都道府県", 'pref'), array("SELECT_CHECK","NUM_CHECK")); 
    919         $objErr->doFunc(array('住所1', "addr01", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    920         $objErr->doFunc(array('住所2', "addr02", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    921         $objErr->doFunc(array("電話番号1", 'tel01'), array("EXIST_CHECK","SPTAB_CHECK" )); 
    922         $objErr->doFunc(array("電話番号2", 'tel02'), array("EXIST_CHECK","SPTAB_CHECK" )); 
    923         $objErr->doFunc(array("電話番号3", 'tel03'), array("EXIST_CHECK","SPTAB_CHECK" )); 
    924         $objErr->doFunc(array("電話番号", "tel01", "tel02", "tel03") ,array("TEL_CHECK")); 
    925  
    926         return $objErr->arrErr; 
     515     
     516    function lfCheckReferer(){ 
     517        /** 
     518         * 規約ページからの遷移でなければエラー画面へ遷移する 
     519         */  
     520        if (Net_UserAgent_Mobile::isMobile() === FALSE 
     521             && empty($_POST) 
     522             && !preg_match('/kiyaku.php/', basename($_SERVER['HTTP_REFERER'])) 
     523            ) { 
     524            SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, "", true); 
     525        } 
    927526    } 
    928527 
Note: See TracChangeset for help on using the changeset viewer.