[Svn-src-all:1270] [version-2_5-dev 20159] LC_Page_Mypage_LoginCheck削除

kimoto admin @ mail.ec-cube.net
2011年 2月 12日 (土) 19:44:52 JST


Subversion committed to /home/svn/open 20159
http://svn.ec-cube.net/open_trac/changeset/20159
┌────────────────────────────┐
│更新者 :  kimoto                                       │
│更新日時:  2011-02-12 19:44:52 +0900 (土, 12  2月 2011)│
└────────────────────────────┘

Log:
--------------------------------------------------------
LC_Page_Mypage_LoginCheck削除
* ログインの処理はLC_Page_FrontParts_LoginCheckですべて行う
* 最終的にはPageクラスで行うべきではない


Changed:                      [U:修正,A:追加,D:削除]
--------------------------------------------------------
U   branches/version-2_5-dev/data/Smarty/templates/default/mypage/login.tpl
U   branches/version-2_5-dev/data/Smarty/templates/mobile/mypage/login.tpl
U   branches/version-2_5-dev/data/Smarty/templates/sphone/mypage/login.tpl
U   branches/version-2_5-dev/data/class/pages/frontparts/LC_Page_FrontParts_LoginCheck.php
U   branches/version-2_5-dev/data/class/pages/mypage/LC_Page_AbstractMypage.php
D   branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_LoginCheck.php

変更: branches/version-2_5-dev/data/Smarty/templates/default/mypage/login.tpl
===================================================================
--- branches/version-2_5-dev/data/Smarty/templates/default/mypage/login.tpl	2011-02-12 10:44:40 UTC (rev 20158)
+++ branches/version-2_5-dev/data/Smarty/templates/default/mypage/login.tpl	2011-02-12 10:44:52 UTC (rev 20159)
@@ -25,13 +25,16 @@
 <div id="under02column">
   <div id="under02column_login">
     <h2 class="title"><!--{$tpl_title|h}--></h2>
-    <form name="login_mypage" id="login_mypage" method="post" action="./login_check.php" onsubmit="return fnCheckLogin('login_mypage')">
-    <input type="hidden" name="mode" value="login" />
+    <form name="login_mypage" id="login_mypage" method="post" action="<!--{$smarty.const.HTTPS_URL}-->frontparts/login_check.php" onsubmit="return fnCheckLogin('login_mypage')">
+            <input type="hidden" name="mode" value="login" />
+            <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
+            <input type="hidden" name="url" value="<!--{$smarty.server.PHP_SELF|h}-->" />
+
    <div class="loginarea">
      <p><img src="<!--{$TPL_URLPATH}-->img/title/tit_sub_member.gif" width="202" height="16" alt="会員登録がお済みのお客様" /></p>
      <p class="inputtext">会員の方は、登録時に入力されたメールアドレスとパスワードでログインしてください。</p>
        <div class="inputbox">
-       <!--{assign var=key value="mypage_login_email"}-->
+       <!--{assign var=key value="login_email"}-->
        <span class="attention"><!--{$arrErr[$key]}--></span>
        <p>メールアドレス:&nbsp;
          <input type="text" name="<!--{$key}-->"
@@ -41,12 +44,12 @@
                 size="40" class="box300" />
        </p>
        <p class="mini">
-         <!--{assign var=key value="mypage_login_memory"}-->
+         <!--{assign var=key value="login_memory"}-->
          <input type="checkbox" name="<!--{$key}-->" value="1" <!--{$tpl_login_memory|sfGetChecked:1}--> id="login_memory" />
          <label for="login_memory">メールアドレスをコンピューターに記憶させる</label>
        </p>
        <p class="passwd">
-         <!--{assign var=key value="mypage_login_pass"}-->
+         <!--{assign var=key value="login_pass"}-->
          <span class="attention"><!--{$arrErr[$key]}--></span>
          パスワード:&nbsp;
          <input type="password" name="<!--{$key}-->" maxlength="<!--{$arrForm[$key].length}-->" style="<!--{$arrErr[$key]|sfGetErrorColor}-->" size="40" class="box300" />

変更: branches/version-2_5-dev/data/Smarty/templates/mobile/mypage/login.tpl
===================================================================
--- branches/version-2_5-dev/data/Smarty/templates/mobile/mypage/login.tpl	2011-02-12 10:44:40 UTC (rev 20158)
+++ branches/version-2_5-dev/data/Smarty/templates/mobile/mypage/login.tpl	2011-02-12 10:44:52 UTC (rev 20159)
@@ -21,18 +21,20 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
 *}-->
-<form name="member_form" id="member_form" method="post" action="./login_check.php">
+<form name="member_form" id="member_form" method="post" action="../frontparts/login_check.php">
 	<input type="hidden" name="mode" value="login" >
+    <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
+    <input type="hidden" name="url" value="<!--{$smarty.server.PHP_SELF|h}-->" />    
 <!--{if !$tpl_valid_phone_id}-->
 	●メールアドレス<br>
-    <!--{assign var=key value="mypage_login_email"}-->
+    <!--{assign var=key value="login_email"}-->
 	<font color="#FF0000"><!--{$arrErr[$key]}--></font>
     <input type="text" name="<!--{$key}-->" value="<!--{$tpl_login_email|h}-->" maxlength="<!--{$arrForm[$key].length}-->" size="40" istyle="3"><br>
 <!--{else}-->
-	<input type="hidden" name="mypage_login_email" value="dummy">
+	<input type="hidden" name="login_email" value="dummy">
 <!--{/if}-->
 	●パスワード<br>
-    <!--{assign var=key value="mypage_login_pass"}-->
+    <!--{assign var=key value="login_pass"}-->
     <font color="#FF0000"><!--{$arrErr[$key]}--></font>
     <input type="password" name="<!--{$key}-->" maxlength="<!--{$arrForm[$key].length}-->" size="40" istyle="3"><br>
 	<center><input type="submit" value="送信" name="log"></center><br>

変更: branches/version-2_5-dev/data/Smarty/templates/sphone/mypage/login.tpl
===================================================================
--- branches/version-2_5-dev/data/Smarty/templates/sphone/mypage/login.tpl	2011-02-12 10:44:40 UTC (rev 20158)
+++ branches/version-2_5-dev/data/Smarty/templates/sphone/mypage/login.tpl	2011-02-12 10:44:52 UTC (rev 20159)
@@ -25,13 +25,15 @@
 <div id="under02column">
   <div id="under02column_login">
     <h2 class="title"><!--{$tpl_title|h}--></h2>
-    <form name="login_mypage" id="login_mypage" method="post" action="./login_check.php" onsubmit="return fnCheckLogin('login_mypage')">
+    <form name="login_mypage" id="login_mypage" method="post" action="<!--{$smarty.const.HTTPS_URL}-->frontparts/login_check.php" onsubmit="return fnCheckLogin('login_mypage')">
     <input type="hidden" name="mode" value="login" />
+            <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
+            <input type="hidden" name="url" value="<!--{$smarty.server.PHP_SELF|h}-->" />    
    <div class="loginarea">
      <h3>会員登録がお済みのお客様</h3>
      <p class="inputtext">会員の方は、登録時に入力されたメールアドレスとパスワードでログインしてください。</p>
        <div class="inputbox">
-       <!--{assign var=key value="mypage_login_email"}-->
+       <!--{assign var=key value="login_email"}-->
        <span class="attention"><!--{$arrErr[$key]}--></span>
        <p>メールアドレス:&nbsp;
          <input type="text" name="<!--{$key}-->"
@@ -41,12 +43,12 @@
                 size="40" class="box300" />
        </p>
        <p class="mini">
-         <!--{assign var=key value="mypage_login_memory"}-->
+         <!--{assign var=key value="login_memory"}-->
          <input type="checkbox" name="<!--{$key}-->" value="1" <!--{$tpl_login_memory|sfGetChecked:1}--> id="login_memory" />
          <label for="login_memory">メールアドレスを記憶させる</label>
        </p>
        <p class="passwd">
-         <!--{assign var=key value="mypage_login_pass"}-->
+         <!--{assign var=key value="login_pass"}-->
          <span class="attention"><!--{$arrErr[$key]}--></span>
          パスワード:&nbsp;
          <input type="password" name="<!--{$key}-->" maxlength="<!--{$arrForm[$key].length}-->" style="<!--{$arrErr[$key]|sfGetErrorColor}-->" size="40" class="box300" />

変更: branches/version-2_5-dev/data/class/pages/frontparts/LC_Page_FrontParts_LoginCheck.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/frontparts/LC_Page_FrontParts_LoginCheck.php	2011-02-12 10:44:40 UTC (rev 20158)
+++ branches/version-2_5-dev/data/class/pages/frontparts/LC_Page_FrontParts_LoginCheck.php	2011-02-12 10:44:52 UTC (rev 20159)
@@ -69,50 +69,82 @@
             GC_Utils_Ex::gfPrintLog('invalid access :login_check.php $POST["url"]=' . $_POST['url']);
             SC_Utils_Ex::sfDispSiteError(PAGE_ERROR);
         }
-        
+
         // 会員管理クラス
         $objCustomer = new SC_Customer();
         // クッキー管理クラス
         $objCookie = new SC_Cookie(COOKIE_EXPIRE);
         // パラメータ管理クラス
         $this->objFormParam = new SC_FormParam();
-        
+
         // パラメータ情報の初期化
         $this->lfInitParam($this->objFormParam);
-        
+
         // リクエスト値をフォームにセット
         $this->objFormParam->setParam($this->lfConvertParam($_POST));
-        
+
         // モードによって分岐
         switch ($this->getMode()) {
         case 'login':
             // --- ログイン
-            
+
             // 入力値のエラーチェック
             $this->objFormParam->toLower('login_email');
             $arrErr = $this->objFormParam->checkError();
-            
+
             // エラーの場合はエラー画面に遷移
             if (count($arrErr) > 0) {
                 SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR);
             }
-            
+
             // 入力チェック後の値を取得
             $arrForm = $this->objFormParam->getHashArray();
-            
+
             // クッキー保存判定
             if ($arrForm['login_memory'] == '1' && $arrForm['login_email'] != '') {
                 $objCookie->setCookie('login_email', $arrForm['login_email']);
             } else {
                 $objCookie->setCookie('login_email', '');
             }
-            
+
             // 遷移先の制御
             if (count($arrErr) == 0) {
+                // ログイン判定
+                $loginFailFlag = false;
+                if(SC_Display::detectDevice() === DEVICE_TYPE_MOBILE) {
+                    // モバイルサイト
+                    if(!$objCustomer->getCustomerDataFromMobilePhoneIdPass($arrForm['login_pass']) &&
+                       !$objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'], true)) {
+                        $loginFailFlag = true;
+                    }
+                } else {
+                    // モバイルサイト以外
+                    if(!$objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'])) {
+                        $loginFailFlag = true;
+                    }
+                }
+
                 // ログイン処理
-                if ($objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'], true)) {
+                if ($loginFailFlag == false) {
+                    if(SC_Display::detectDevice() === DEVICE_TYPE_MOBILE) {
+                        // ログインが成功した場合は携帯端末IDを保存する。
+                        $objCustomer->updateMobilePhoneId();
+
+                        /*
+                         * email がモバイルドメインでは無く,
+                         * 携帯メールアドレスが登録されていない場合
+                         */
+                        $objMobile = new SC_Helper_Mobile_Ex();
+                        if (!$objMobile->gfIsMobileMailAddress($objCustomer->getValue('email'))) {
+                            if (!$objCustomer->hasValue('email_mobile')) {
+                                SC_Response_Ex::sendRedirectFromUrlPath('entry/email_mobile.php');
+                                exit;
+                            }
+                        }
+                    }
+
                     // --- ログインに成功した場合
-                    SC_Response_Ex::sendRedirect(HTTP_URL);
+                    SC_Response_Ex::sendRedirect($_POST['url']);
                     exit;
                 } else {
                     // --- ログインに失敗した場合
@@ -133,11 +165,11 @@
                 SC_Response_Ex::sendRedirect($_POST['url']);
                 exit;
             }
-            
+
             break;
         case 'logout':
             // --- ログアウト
-            
+
             // ログイン情報の解放
             $objCustomer->EndSession();
             // 画面遷移の制御
@@ -150,12 +182,12 @@
                 SC_Response_Ex::sendRedirect(HTTP_URL);
             }
             exit;
-            
+
             break;
         default:
             break;
         }
-        
+
     }
 
     /**
@@ -175,7 +207,7 @@
      */
     function lfInitParam(&$objFormParam) {
         $objFormParam->addParam('記憶する', 'login_memory', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'));
-        $objFormParam->addParam('メールアドレス', 'login_email', MTEXT_LEN, 'a', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'EMAIL_CHECK', 'NO_SPTAB' ,'EMAIL_CHAR_CHECK'));
+        $objFormParam->addParam('メールアドレス', 'login_email', MTEXT_LEN, 'a', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NO_SPTAB' ,'EMAIL_CHAR_CHECK'));
         $objFormParam->addParam('パスワード', 'login_pass', PASSWORD_LEN1, '', array('EXIST_CHECK'));
         $objFormParam->addParam('パスワード', 'login_pass1', PASSWORD_LEN1, '', array('EXIST_CHECK', 'MIN_LENGTH_CHECK'));
         $objFormParam->addParam('パスワード', 'login_pass2', PASSWORD_LEN2, '', array('EXIST_CHECK', 'MAX_LENGTH_CHECK'));

変更: branches/version-2_5-dev/data/class/pages/mypage/LC_Page_AbstractMypage.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/mypage/LC_Page_AbstractMypage.php	2011-02-12 10:44:40 UTC (rev 20158)
+++ branches/version-2_5-dev/data/class/pages/mypage/LC_Page_AbstractMypage.php	2011-02-12 10:44:52 UTC (rev 20159)
@@ -70,17 +70,18 @@
             }
 
             // POSTされてきたIDがある場合は優先する。
-            if(isset($_POST['mypage_login_email'])
-               && $_POST['mypage_login_email'] != "") {
-                $this->tpl_login_email = $_POST['mypage_login_email'];
+            if(isset($_POST['login_email'])
+               && $_POST['login_email'] != "") {
+                $this->tpl_login_email = $_POST['login_email'];
             }
 
             // 携帯端末IDが一致する会員が存在するかどうかをチェックする。
             if (SC_Display::detectDevice() === DEVICE_TYPE_MOBILE){
                 $this->tpl_valid_phone_id = $objCustomer->checkMobilePhoneId();
             }
-            $this->tpl_title    = 'MYページ(ログイン)';
-            $this->tpl_mainpage = 'mypage/login.tpl';
+            $this->tpl_title        = 'MYページ(ログイン)';
+            $this->tpl_mainpage     = 'mypage/login.tpl';
+            $this->transactionid    = SC_Helper_Session_Ex::getToken();
 
         } else {
             //マイページ顧客情報表示用共通処理

削除: branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_LoginCheck.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_LoginCheck.php	2011-02-12 10:44:40 UTC (rev 20158)
+++ branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_LoginCheck.php	2011-02-12 10:44:52 UTC (rev 20159)
@@ -1,169 +0,0 @@
-<?php
-/*
- * This file is part of EC-CUBE
- *
- * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
- *
- * http://www.lockon.co.jp/
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- */
-
-// {{{ requires
-require_once(CLASS_REALDIR . "pages/LC_Page.php");
-
-/**
- * ログインチェック のページクラス.
- *
- * TODO frontparts/LC_Page_Frontparts_LoginCheck と抽象化させる
- * FIXME ロジック見なおし...
- *
- * @package Page
- * @author LOCKON CO.,LTD.
- * @version $Id$
- */
-class LC_Page_Mypage_LoginCheck extends LC_Page {
-
-    // }}}
-    // {{{ functions
-
-    /**
-     * Page を初期化する.
-     *
-     * @return void
-     */
-    function init() {
-        parent::init();
-    }
-
-    /**
-     * Page のプロセス.
-     *
-     * @return void
-     */
-    function process() {
-        parent::process();
-        $this->action();
-        $this->sendResponse();
-    }
-
-    /**
-     * Page のAction.
-     *
-     * @return void
-     */
-    function action() {
-        $objCustomer = new SC_Customer();
-        // クッキー管理クラス
-        $objCookie = new SC_Cookie(COOKIE_EXPIRE);
-        // パラメータ管理クラス
-        $this->objFormParam = new SC_FormParam();
-        // パラメータ情報の初期化
-        $this->lfInitParam();
-        //パスワード・Eメールにある空白をトリム
-        $_POST["mypage_login_email"] = trim($_POST["mypage_login_email"]);
-        $_POST["mypage_login_pass"] = trim($_POST["mypage_login_pass"]);  //認証用
-        $_POST["mypage_login_pass1"] = trim($_POST["mypage_login_pass"]); //最小桁数比較用
-        $_POST["mypage_login_pass2"] = trim($_POST["mypage_login_pass"]); //最大桁数比較用
-        // POST値の取得
-        $this->objFormParam->setParam($_POST);
-
-        switch($this->getMode()) {
-        case 'login':
-            $this->objFormParam->toLower('mypage_login_email');
-            $arrErr = $this->objFormParam->checkError();
-
-            // エラーの場合はエラー画面に遷移
-            if (count($arrErr) > 0) {
-                SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR);
-            }
-            $arrForm =  $this->objFormParam->getHashArray();
-            // クッキー保存判定
-            if ($arrForm['mypage_login_memory'] == "1" && $arrForm['mypage_login_email'] != "") {
-                $objCookie->setCookie('login_email', $_POST['mypage_login_email']);
-            } else {
-                $objCookie->setCookie('login_email', '');
-            }
-
-            // ログイン判定
-            $loginFailFlag = false;
-            if(Net_UserAgent_Mobile::isMobile() === true) {
-                // モバイルサイト
-                if(!$objCustomer->getCustomerDataFromMobilePhoneIdPass($arrForm['mypage_login_pass']) &&
-                   !$objCustomer->getCustomerDataFromEmailPass($arrForm['mypage_login_pass'], $arrForm['mypage_login_email'], true)) {
-                    $loginFailFlag = true;
-                }
-            } else {
-                // モバイルサイト以外
-                if(!$objCustomer->getCustomerDataFromEmailPass($arrForm['mypage_login_pass'], $arrForm['mypage_login_email'])) {
-                    $loginFailFlag = true;
-                }
-            }
-            if($loginFailFlag === true) {
-                $arrForm['mypage_login_email'] = strtolower($arrForm['mypage_login_email']);
-                $objQuery = new SC_Query;
-                $where = "(email = ? OR email_mobile = ?) AND status = 1 AND del_flg = 0";
-                $ret = $objQuery->count("dtb_customer", $where, array($arrForm['mypage_login_email'], $arrForm['mypage_login_email']));
-
-                if($ret > 0) {
-                    SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR);
-                } else {
-                    SC_Utils_Ex::sfDispSiteError(SITE_LOGIN_ERROR);
-                }
-            } else {
-                if(Net_UserAgent_Mobile::isMobile() === true) {
-                    // ログインが成功した場合は携帯端末IDを保存する。
-                    $objCustomer->updateMobilePhoneId();
-
-                    /*
-                     * email がモバイルドメインでは無く,
-                     * 携帯メールアドレスが登録されていない場合
-                     */
-                    $objMobile = new SC_Helper_Mobile_Ex();
-                    if (!$objMobile->gfIsMobileMailAddress($objCustomer->getValue('email'))) {
-                        if (!$objCustomer->hasValue('email_mobile')) {
-                            SC_Response_Ex::sendRedirectFromUrlPath('entry/email_mobile.php');
-                            exit;
-                        }
-                    }
-                }
-
-                SC_Response_Ex::sendRedirect(DIR_INDEX_PATH);
-                exit;
-            }
-            break;
-        }
-    }
-
-    /**
-     * デストラクタ.
-     *
-     * @return void
-     */
-    function destroy() {
-        parent::destroy();
-    }
-
-    /* パラメータ情報の初期化 */
-    function lfInitParam() {
-        $this->objFormParam->addParam("記憶する", "mypage_login_memory", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
-        $this->objFormParam->addParam("メールアドレス", "mypage_login_email", MTEXT_LEN, "a", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
-        $this->objFormParam->addParam("パスワード", "mypage_login_pass", PASSWORD_LEN1, "KVa", array("EXIST_CHECK"));
-        $this->objFormParam->addParam("パスワード", "mypage_login_pass1", PASSWORD_LEN1, "KVa", array("EXIST_CHECK", "MIN_LENGTH_CHECK"));
-        $this->objFormParam->addParam("パスワード", "mypage_login_pass2", PASSWORD_LEN2, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
-    }
-
-}
-?>




Svn-src-all メーリングリストの案内