source: branches/feature-module-update/data/class/pages/admin/LC_Page_Admin_Login.php @ 15519

Revision 15519, 3.8 KB checked in by nanasess, 17 years ago (diff)

未定義変数の対応

  • Property svn:keywords set to Id Revision Date
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$
17 */
18class LC_Page_Admin_Login extends LC_Page {
19
20    // {{{ properties
21
22    /** SC_Session インスタンス */
23    var $objSess;
24
25    // }}}
26    // {{{ functions
27
28    /**
29     * Page を初期化する.
30     *
31     * @return void
32     */
33    function init() {
34        parent::init();
35    }
36
37    /**
38     * Page のプロセス.
39     *
40     * @return void
41     */
42    function process() {
43        $conn = new SC_DBConn();
44        $this->objSess = new SC_Session();
45        $ret = false;
46
47        if (!isset($_POST['login_id'])) $_POST['login_id'] = "";
48        if (!isset($_POST['password'])) $_POST['password'] = "";
49
50        // 入力判定
51        if(strlen($_POST{'login_id'}) > 0 && strlen($_POST{'password'}) > 0) {
52            // 認証パスワードの判定
53            $ret = $this->fnCheckPassword($conn);
54        }
55
56        if($ret) {
57            // 成功
58            $this->sendRedirect($this->getLocation(URL_HOME));
59        } else {
60            // エラーページの表示
61            SC_Utils_Ex::sfDispError(LOGIN_ERROR);
62            exit;
63        }
64    }
65
66    /**
67     * デストラクタ.
68     *
69     * @return void
70     */
71    function destroy() {
72        parent::destroy();
73    }
74
75    /* 認証パスワードの判定 */
76    function fnCheckPassword($conn) {
77        $sql = "SELECT member_id, password, authority, login_date, name FROM dtb_member WHERE login_id = ? AND del_flg <> 1 AND work = 1";
78        $arrcol = array ($_POST['login_id']);
79        // DBから暗号化パスワードを取得する。
80        $data_list = $conn->getAll($sql ,$arrcol);
81        // パスワードの取得
82        $password = $data_list[0]['password'];
83        // ユーザ入力パスワードの判定
84        $ret = sha1($_POST['password'] . ":" . AUTH_MAGIC);
85
86        if ($ret == $password) {
87               // セッション登録
88            $this->fnSetLoginSession($data_list[0]['member_id'], $data_list[0]['authority'], $data_list[0]['login_date'], $data_list[0]['name']);
89            // ログイン日時の登録
90            $this->fnSetLoginDate();
91            return true;
92        }
93
94        // パスワード
95        GC_Utils_Ex::gfPrintLog($_POST['login_id'] . " password incorrect.");
96        return false;
97    }
98
99    /* 認証セッションの登録 */
100    function fnSetLoginSession($member_id,$authority,$login_date, $login_name = '') {
101
102        // 認証済みの設定
103        $this->objSess->SetSession('cert', CERT_STRING);
104        $this->objSess->SetSession('login_id', $_POST{'login_id'});
105        $this->objSess->SetSession('authority', $authority);
106        $this->objSess->SetSession('member_id', $member_id);
107        $this->objSess->SetSession('login_name', $login_name);
108        $this->objSess->SetSession('uniqid', $this->objSess->getUniqId());
109
110        if(strlen($login_date) > 0) {
111            $this->objSess->SetSession('last_login', $login_date);
112        } else {
113            $this->objSess->SetSession('last_login', date("Y-m-d H:i:s"));
114        }
115        $sid = $this->objSess->GetSID();
116        // ログに記録する
117        GC_Utils_Ex::gfPrintLog("login : user=".$_SESSION{'login_id'}." auth=".$_SESSION{'authority'}." lastlogin=". $_SESSION{'last_login'} ." sid=".$sid);
118    }
119
120    /* ログイン日時の更新 */
121    function fnSetLoginDate() {
122        $oquery = new SC_Query();
123        $sqlval['login_date'] = date("Y-m-d H:i:s");
124        $member_id = $this->objSess->GetSession('member_id');
125        $where = "member_id = " . $member_id;
126        $ret = $oquery->update("dtb_member", $sqlval, $where);
127    }
128}
129?>
Note: See TracBrowser for help on using the repository browser.