source: branches/comu-utf8/html/frontparts/login_check.php @ 15099

Revision 15099, 3.0 KB checked in by Yammy, 17 years ago (diff)

UTF-8変換済みファイルインポート
1.3.4ベース

Line 
1<?php
2/*
3 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7require_once("../require.php");
8
9// 不正なURLがPOSTされた場合はエラー表示
10if (isset($_POST['url']) && lfIsValidURL() !== true) {
11    gfPrintLog('invalid access :login_check.php $POST["url"]=' . $_POST['url']);
12    sfDispSiteError(PAGE_ERROR);
13}
14
15$objCustomer = new SC_Customer();
16// クッキー管理クラス
17$objCookie = new SC_Cookie(COOKIE_EXPIRE);
18// パラメータ管理クラス
19$objFormParam = new SC_FormParam();
20// パラメータ情報の初期化
21lfInitParam();
22// POST値の取得
23$objFormParam->setParam($_POST);
24
25switch($_POST['mode']) {
26case 'login':
27    $objFormParam->toLower('login_email');
28    $arrErr = $objFormParam->checkError();
29    $arrForm =  $objFormParam->getHashArray();
30    // クッキー保存判定
31    if ($arrForm['login_memory'] == "1" && $arrForm['login_email'] != "") {
32        $objCookie->setCookie('login_email', $_POST['login_email']);
33    } else {
34        $objCookie->setCookie('login_email', '');
35    }
36   
37    if(count($arrErr) == 0) {
38        if($objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'])) {
39            header("Location: " . $_POST['url']);
40            exit;
41        } else {
42            $objQuery = new SC_Query;
43            $where = "email ILIKE ? AND status = 1 AND del_flg = 0";
44            $ret = $objQuery->count("dtb_customer", $where, array($arrForm['login_email']));
45           
46            if($ret > 0) {
47                sfDispSiteError(TEMP_LOGIN_ERROR);
48            } else {
49                sfDispSiteError(SITE_LOGIN_ERROR);
50            }
51        }
52    } else {
53        // 入力エラーの場合、元のアドレスに戻す。
54        header("Location: " . $_POST['url']);
55        exit;
56    }
57    break;
58case 'logout':
59    // ログイン情報の解放
60    $objCustomer->EndSession();
61    $mypage_url_search = strpos('.'.$_POST['url'], "mypage");
62    //マイページログイン中はログイン画面へ移行
63    if ($mypage_url_search == 2){
64    header("Location: /mypage/login.php");
65    }else{
66    header("Location: " . $_POST['url']);   
67    }
68    exit;
69    break;
70}
71
72//-----------------------------------------------------------------------------------------------------------------------------------
73/* パラメータ情報の初期化 */
74function lfInitParam() {
75    global $objFormParam;
76    $objFormParam->addParam("記憶する", "login_memory", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
77    $objFormParam->addParam("メールアドレス", "login_email", STEXT_LEN, "a", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
78    $objFormParam->addParam("パスワード", "login_pass", STEXT_LEN, "", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
79}
80
81/* POSTされるURLのチェック*/
82function lfIsValidURL() {
83    $site_url  = sfIsHTTPS() ? SSL_URL : SITE_URL;
84    $check_url = trim($_POST['url']);
85   
86    // ドメインチェック
87    $pattern = "|^$site_url|";
88    if (!preg_match($pattern, $check_url)) {
89        return false;
90    }
91
92    // 改行コード(CR・LF)・NULLバイトチェック
93    $pattern = '/\r|\n|\0|%0D|%0A|%00/';
94    if (preg_match_all($pattern, $check_url, $matches)) {
95        return false;
96    }
97   
98    return true;
99}
100
101?>
Note: See TracBrowser for help on using the repository browser.