Changeset 16374


Ignore:
Timestamp:
2007/10/11 11:12:23 (14 years ago)
Author:
nanasess
Message:

PCとモバイル双方のメールアドレスを利用できるよう修正(#171)

Location:
branches/feature-module-update/data/class/pages
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update/data/class/pages/forgot/LC_Page_Forgot.php

    r16322 r16374  
    7676            //メアド入力時 
    7777            $_POST['email'] = strtolower($_POST['email']); 
    78             $sql = "SELECT * FROM dtb_customer WHERE email = ? AND status = 2 AND del_flg = 0"; 
    79             $result = $conn->getAll($sql, array($_POST['email']) ); 
     78            // FIXME DBチェックの前に妥当性チェックするべき 
     79            $sql = "SELECT * FROM dtb_customer WHERE (email = ? OR email_mobile = ?) AND status = 2 AND del_flg = 0"; 
     80            $result = $conn->getAll($sql, array($_POST['email'], $_POST['email']) ); 
    8081 
    8182            // 本会員登録済みの場合 
     
    8889                $this->tpl_mainpage = 'forgot/secret.tpl'; 
    8990            } else { 
    90                 $sql = "SELECT customer_id FROM dtb_customer WHERE email = ? AND status = 1 AND del_flg = 0";   //仮登録中の確認 
    91                 $result = $conn->getAll($sql, array($_POST['email']) ); 
     91                $sql = "SELECT customer_id FROM dtb_customer WHERE (email = ? OR email_mobile = ?) AND status = 1 AND del_flg = 0"; //仮登録中の確認 
     92                $result = $conn->getAll($sql, array($_POST['email'], $_POST['email']) ); 
    9293                if ($result) { 
    9394                    $this->errmsg = "ご入力のemailアドレスは現在仮登録中です。<br>登録の際にお送りしたメールのURLにアクセスし、<br>本会員登録をお願いします。"; 
     
    103104                // ヒミツの答えの回答が正しいかチェック 
    104105 
    105                 $sql = "SELECT * FROM dtb_customer WHERE email = ? AND del_flg = 0"; 
    106                 $result = $conn->getAll($sql, array($_SESSION['forgot']['email']) ); 
     106                $sql = "SELECT * FROM dtb_customer WHERE (email = ? OR email_mobile = ?) AND del_flg = 0"; 
     107                $result = $conn->getAll($sql, array($_SESSION['forgot']['email'], $_SESSION['forgot']['email'])); 
    107108                $data = $result[0]; 
    108109 
  • branches/feature-module-update/data/class/pages/frontparts/LC_Page_FrontParts_LoginCheck.php

    r16084 r16374  
    6060            $this->objFormParam->toLower('login_email'); 
    6161            $arrErr = $this->objFormParam->checkError(); 
     62 
     63            // エラーの場合はエラー画面に遷移 
     64            if (count($arrErr) > 0) { 
     65                SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR); 
     66            } 
    6267            $arrForm =  $this->objFormParam->getHashArray(); 
    6368            // クッキー保存判定 
     
    6974 
    7075            if(count($arrErr) == 0) { 
    71                 if($objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'])) { 
     76                if($objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'], true)) { 
    7277                    $this->sendRedirect($this->getLocation($_POST['url'])); 
    7378                    exit; 
    7479                } else { 
     80                    $arrForm['login_email'] = strtolower($arrForm['login_email']); 
    7581                    $objQuery = new SC_Query; 
    76                     $where = "email ILIKE ? AND status = 1 AND del_flg = 0"; 
    77                     $ret = $objQuery->count("dtb_customer", $where, array($arrForm['login_email'])); 
     82                    $where = "(email = ? OR email_mobile = ?) AND status = 1 AND del_flg = 0"; 
     83                    $ret = $objQuery->count("dtb_customer", $where, array($arrForm['login_email'], $arrForm['login_email'])); 
    7884 
    7985                    if($ret > 0) { 
     
    116122    function lfInitParam() { 
    117123        $this->objFormParam->addParam("記憶する", "login_memory", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
    118         $this->objFormParam->addParam("メールアドレス", "login_email", STEXT_LEN, "a", array("EXIST_CHECK", "MAX_LENGTH_CHECK")); 
    119         $this->objFormParam->addParam("パスワード", "login_pass", STEXT_LEN, "", array("EXIST_CHECK", "MAX_LENGTH_CHECK")); 
     124        $this->objFormParam->addParam("メールアドレス", "login_email", MTEXT_LEN, "a", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK")); 
     125        $this->objFormParam->addParam("パスワード", "login_pass", MTEXT_LEN, "", array("EXIST_CHECK", "MAX_LENGTH_CHECK")); 
    120126    } 
    121127} 
  • branches/feature-module-update/data/class/pages/mypage/LC_Page_Mypage_LoginCheck.php

    r16090 r16374  
    5555            $this->objFormParam->toLower('mypage_login_email'); 
    5656            $arrErr = $this->objFormParam->checkError(); 
     57 
     58            // エラーの場合はエラー画面に遷移 
     59            if (count($arrErr) > 0) { 
     60                SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR); 
     61            } 
    5762            $arrForm =  $this->objFormParam->getHashArray(); 
    5863            // クッキー保存判定 
     
    6368            } 
    6469 
    65               if($objCustomer->getCustomerDataFromEmailPass($arrForm['mypage_login_pass'], $arrForm['mypage_login_email'])) { 
    66                   $this->sendRedirect($this->getLocation("./index.php")); 
    67                   exit; 
    68               } else { 
    69                   $objQuery = new SC_Query; 
    70                   $where = "email = ? AND status = 1 AND del_flg = 0"; 
    71                   $ret = $objQuery->count("dtb_customer", $where, array($arrForm['mypage_login_email'])); 
     70            if($objCustomer->getCustomerDataFromEmailPass($arrForm['mypage_login_pass'], $arrForm['mypage_login_email'], true)) { 
     71                $this->sendRedirect($this->getLocation("./index.php")); 
     72                exit; 
     73            } else { 
     74                $arrForm['mypage_login_email'] = strtolower($arrForm['mypage_login_email']); 
     75                $objQuery = new SC_Query; 
     76                $where = "(email = ? OR email_mobile = ?) AND status = 1 AND del_flg = 0"; 
     77                $ret = $objQuery->count("dtb_customer", $where, array($arrForm['mypage_login_email'], $arrForm['mypage_login_email'])); 
    7278 
    73                   if($ret > 0) { 
    74                       SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR); 
    75                   } else { 
    76                       SC_Utils_Ex::sfDispSiteError(SITE_LOGIN_ERROR); 
    77                   } 
     79                if($ret > 0) { 
     80                    SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR); 
     81                } else { 
     82                    SC_Utils_Ex::sfDispSiteError(SITE_LOGIN_ERROR); 
    7883                } 
     84            } 
    7985            break; 
    8086        } 
    8187    } 
     88 
    8289    /** 
    8390     * デストラクタ. 
     
    9299    function lfInitParam() { 
    93100        $this->objFormParam->addParam("記憶する", "mypage_login_memory", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
    94         $this->objFormParam->addParam("メールアドレス", "mypage_login_email", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK")); 
    95         $this->objFormParam->addParam("パスワード", "mypage_login_pass", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK")); 
     101        $this->objFormParam->addParam("メールアドレス", "mypage_login_email", MTEXT_LEN, "a", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK")); 
     102        $this->objFormParam->addParam("パスワード", "mypage_login_pass", MTEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK")); 
    96103    } 
    97104} 
Note: See TracChangeset for help on using the changeset viewer.