Source for file LC_Page_FrontParts_LoginCheck.php

Documentation is available at LC_Page_FrontParts_LoginCheck.php

  1. <?php
  2. /*
  3.  * This file is part of EC-CUBE
  4.  *
  5.  * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
  6.  *
  7.  * http://www.lockon.co.jp/
  8.  *
  9.  * This program is free software; you can redistribute it and/or
  10.  * modify it under the terms of the GNU General Public License
  11.  * as published by the Free Software Foundation; either version 2
  12.  * of the License, or (at your option) any later version.
  13.  *
  14.  * This program is distributed in the hope that it will be useful,
  15.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  * GNU General Public License for more details.
  18.  *
  19.  * You should have received a copy of the GNU General Public License
  20.  * along with this program; if not, write to the Free Software
  21.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  22.  */
  23.  
  24. // {{{ requires
  25. require_once(CLASS_PATH "pages/LC_Page.php");
  26.  
  27. /**
  28.  * ログインチェック のページクラス.
  29.  *
  30.  * TODO mypage/LC_Page_Mypage_LoginCheck と統合
  31.  *
  32.  * @package Page
  33.  * @author LOCKON CO.,LTD.
  34.  * @version $Id:LC_Page_FrontParts_LoginCheck.php 15532 2007-08-31 14:39:46Z nanasess $
  35.  */
  36.  
  37.     // }}}
  38.     // {{{ functions
  39.  
  40.     /**
  41.      * Page を初期化する.
  42.      *
  43.      * @return void 
  44.      */
  45.     function init({
  46.         parent::init();
  47.  
  48.     }
  49.  
  50.     /**
  51.      * Page のプロセス.
  52.      *
  53.      * @return void 
  54.      */
  55.     function process({
  56.         $objCustomer new SC_Customer();
  57.         // 不正なURLがPOSTされた場合はエラー表示
  58.         if (!$this->isValidToken()) {
  59.             GC_Utils_Ex::gfPrintLog('invalid access :login_check.php $POST["url"]=' $_POST['url']);
  60.             SC_Utils_Ex::sfDispSiteError(PAGE_ERROR);
  61.         }
  62.         // クッキー管理クラス
  63.         $objCookie new SC_Cookie(COOKIE_EXPIRE);
  64.         // パラメータ管理クラス
  65.         $this->objFormParam new SC_FormParam();
  66.         // パラメータ情報の初期化
  67.         $this->lfInitParam();
  68.         // POST値の取得
  69.         $this->objFormParam->setParam($_POST);
  70.  
  71.         if (!isset($_POST['mode'])) $_POST['mode'"";
  72.  
  73.         switch($_POST['mode']{
  74.         case 'login':
  75.             $this->objFormParam->toLower('login_email');
  76.             $arrErr $this->objFormParam->checkError();
  77.  
  78.             // エラーの場合はエラー画面に遷移
  79.             if (count($arrErr0{
  80.                 SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR);
  81.             }
  82.             $arrForm =  $this->objFormParam->getHashArray();
  83.             // クッキー保存判定
  84.             if ($arrForm['login_memory'== "1" && $arrForm['login_email'!= ""{
  85.                 $objCookie->setCookie('login_email'$_POST['login_email']);
  86.             else {
  87.                 $objCookie->setCookie('login_email''');
  88.             }
  89.  
  90.             if(count($arrErr== 0{
  91.                 if($objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass']$arrForm['login_email']true)) {
  92.                     $this->sendRedirect($this->getLocation(URL_DIRarray()false));
  93.                     exit;
  94.                 else {
  95.                     $arrForm['login_email'strtolower($arrForm['login_email']);
  96.                     $objQuery new SC_Query;
  97.                     $where "(email = ? OR email_mobile = ?) AND status = 1 AND del_flg = 0";
  98.                     $ret $objQuery->count("dtb_customer"$wherearray($arrForm['login_email']$arrForm['login_email']));
  99.  
  100.                     if($ret 0{
  101.                         SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR);
  102.                     else {
  103.                         SC_Utils_Ex::sfDispSiteError(SITE_LOGIN_ERROR);
  104.                     }
  105.                 }
  106.             else {
  107.                 // 入力エラーの場合、元のアドレスに戻す。
  108.                 $this->sendRedirect($this->getLocation($_POST['url']array()false));
  109.                 exit;
  110.             }
  111.             break;
  112.         case 'logout':
  113.             // ログイン情報の解放
  114.             $objCustomer->EndSession();
  115.             $mypage_url_search strpos('.'.$_POST['url']"mypage");
  116.             //マイページログイン中はログイン画面へ移行
  117.             if ($mypage_url_search == 2){
  118.                 $this->sendRedirect($this->getLocation(URL_DIR "mypage/login.php"array()false));
  119.             }else{
  120.                 $this->sendRedirect($this->getLocation(URL_DIRarray()false));
  121.             }
  122.             exit;
  123.             break;
  124.         }
  125.     }
  126.  
  127.     /**
  128.      * デストラクタ.
  129.      *
  130.      * @return void 
  131.      */
  132.     function destroy({
  133.         parent::destroy();
  134.     }
  135.  
  136.     /* パラメータ情報の初期化 */
  137.     function lfInitParam({
  138.         $this->objFormParam->addParam("記憶する""login_memory"INT_LEN"n"array("MAX_LENGTH_CHECK""NUM_CHECK"));
  139.         $this->objFormParam->addParam("メールアドレス""login_email"MTEXT_LEN"a"array("EXIST_CHECK""MAX_LENGTH_CHECK""EMAIL_CHECK""NO_SPTAB" ,"EMAIL_CHAR_CHECK"));
  140.         $this->objFormParam->addParam("パスワード""login_pass"MTEXT_LEN""array("EXIST_CHECK""MAX_LENGTH_CHECK"));
  141.     }
  142. }
  143. ?>

Documentation generated on Tue, 28 Apr 2009 18:12:16 +0900 by phpDocumentor 1.4.2