source: branches/feature-module-update/data/class/pages/frontparts/LC_Page_FrontParts_LoginCheck.php @ 16055

Revision 16055, 3.9 KB checked in by nanasess, 15 years ago (diff)

トランザクションチェックをするように変更

  • Property svn:keywords set to Id Revision Date
  • Property svn:mime-type set to text/x-httpd-php; charset=UTF-8
Line 
1<?php
2/*
3 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7
8// {{{ requires
9require_once(CLASS_PATH . "pages/LC_Page.php");
10
11/**
12 * ログインチェック のページクラス.
13 *
14 * @package Page
15 * @author LOCKON CO.,LTD.
16 * @version $Id:LC_Page_FrontParts_LoginCheck.php 15532 2007-08-31 14:39:46Z nanasess $
17 */
18class LC_Page_FrontParts_LoginCheck extends LC_Page {
19
20    // }}}
21    // {{{ functions
22
23    /**
24     * Page を初期化する.
25     *
26     * @return void
27     */
28    function init() {
29        parent::init();
30
31    }
32
33    /**
34     * Page のプロセス.
35     *
36     * @return void
37     */
38    function process() {
39        $objCustomer = new SC_Customer();
40        // 不正なURLがPOSTされた場合はエラー表示
41        if (!$this->isValidToken()) {
42            GC_Utils_Ex::gfPrintLog('invalid access :login_check.php $POST["url"]=' . $_POST['url']);
43            SC_Utils_Ex::sfDispSiteError(PAGE_ERROR);
44        }
45        // クッキー管理クラス
46        $objCookie = new SC_Cookie(COOKIE_EXPIRE);
47        // パラメータ管理クラス
48        $this->objFormParam = new SC_FormParam();
49        // パラメータ情報の初期化
50        $this->lfInitParam();
51        // POST値の取得
52        $this->objFormParam->setParam($_POST);
53
54        if (!isset($_POST['mode'])) $_POST['mode'] = "";
55
56        switch($_POST['mode']) {
57        case 'login':
58            $this->objFormParam->toLower('login_email');
59            $arrErr = $this->objFormParam->checkError();
60            $arrForm =  $this->objFormParam->getHashArray();
61            // クッキー保存判定
62            if ($arrForm['login_memory'] == "1" && $arrForm['login_email'] != "") {
63                $objCookie->setCookie('login_email', $_POST['login_email']);
64            } else {
65                $objCookie->setCookie('login_email', '');
66            }
67
68            if(count($arrErr) == 0) {
69                if($objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'])) {
70                    $this->sendRedirect($this->getLocation($_POST['url']));
71                    exit;
72                } else {
73                    $objQuery = new SC_Query;
74                    $where = "email ILIKE ? AND status = 1 AND del_flg = 0";
75                    $ret = $objQuery->count("dtb_customer", $where, array($arrForm['login_email']));
76
77                    if($ret > 0) {
78                        SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR);
79                    } else {
80                        SC_Utils_Ex::sfDispSiteError(SITE_LOGIN_ERROR);
81                    }
82                }
83            } else {
84                // 入力エラーの場合、元のアドレスに戻す。
85                $this->sendRedirect($this->getLocation($_POST['url']));
86                exit;
87            }
88            break;
89        case 'logout':
90            // ログイン情報の解放
91            $objCustomer->EndSession();
92            $mypage_url_search = strpos('.'.$_POST['url'], "mypage");
93            //マイページログイン中はログイン画面へ移行
94            if ($mypage_url_search == 2){
95                $this->sendRedirect($this->getLocation("/mypage/login.php"));
96            }else{
97                $this->sendRedirect($this->getLocation($_POST['url']));
98            }
99            exit;
100            break;
101        }
102    }
103
104    /**
105     * デストラクタ.
106     *
107     * @return void
108     */
109    function destroy() {
110        parent::destroy();
111    }
112
113    /* パラメータ情報の初期化 */
114    function lfInitParam() {
115        $this->objFormParam->addParam("記憶する", "login_memory", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
116        $this->objFormParam->addParam("メールアドレス", "login_email", STEXT_LEN, "a", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
117        $this->objFormParam->addParam("パスワード", "login_pass", STEXT_LEN, "", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
118    }
119}
120?>
Note: See TracBrowser for help on using the repository browser.