source: branches/comu-utf8/html/admin/login.php @ 15099

Revision 15099, 2.4 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$conn = new SC_DBConn();
10
11$osess = new SC_Session();
12$ret = false;
13
14// 入力判定
15if(strlen($_POST{'login_id'}) > 0 && strlen($_POST{'password'}) > 0) {
16    // 認証パスワードの判定
17    $ret = fnCheckPassword($conn);
18}
19
20if($ret){
21    // 成功
22    header("Location: ".URL_HOME);
23    exit;
24} else {
25    // エラーページの表示
26    sfDispError(LOGIN_ERROR);
27    exit;
28}
29
30/* 認証パスワードの判定 */
31function fnCheckPassword($conn) {
32    $sql = "SELECT member_id, password, authority, login_date, name FROM dtb_member WHERE login_id = ? AND del_flg <> 1 AND work = 1";
33    $arrcol = array ($_POST['login_id']);
34    // DBから暗号化パスワードを取得する。
35    $data_list = $conn->getAll($sql ,$arrcol);
36    // パスワードの取得
37    $password = $data_list[0]['password'];
38    // ユーザ入力パスワードの判定
39    $ret = sha1($_POST['password'] . ":" . AUTH_MAGIC);
40   
41    if ($ret == $password) {
42        // セッション登録
43        fnSetLoginSession($data_list[0]['member_id'], $data_list[0]['authority'], $data_list[0]['login_date'], $data_list[0]['name']);
44        // ログイン日時の登録
45        fnSetLoginDate();
46        return true;
47    }
48   
49    // パスワード
50    gfPrintLog($_POST['login_id'] . " password incorrect.");
51    return false;
52}
53
54/* 認証セッションの登録 */
55function fnSetLoginSession($member_id,$authority,$login_date, $login_name = '') {
56    global $osess;
57    // 認証済みの設定
58    $osess->SetSession('cert', CERT_STRING);
59    $osess->SetSession('login_id', $_POST{'login_id'});
60    $osess->SetSession('authority', $authority);
61    $osess->SetSession('member_id', $member_id);
62    $osess->SetSession('login_name', $login_name);
63    $osess->SetSession('uniqid', $osess->getUniqId());
64   
65    if(strlen($login_date) > 0) {
66        $osess->SetSession('last_login', $login_date);
67    } else {
68        $osess->SetSession('last_login', date("Y-m-d H:i:s"));
69    }
70    $sid = $osess->GetSID();
71    // ログに記録する
72    gfPrintLog("login : user=".$_SESSION{'login_id'}." auth=".$_SESSION{'authority'}." lastlogin=". $_SESSION{'last_login'} ." sid=".$sid);
73}
74
75/* ログイン日時の更新 */
76function fnSetLoginDate() {
77    global $osess;
78    $oquery = new SC_Query();
79    $sqlval['login_date'] = date("Y-m-d H:i:s");
80    $member_id = $osess->GetSession('member_id');
81    $where = "member_id = " . $member_id;
82    $ret = $oquery->update("dtb_member", $sqlval, $where);
83}
84?>
Note: See TracBrowser for help on using the repository browser.