source: branches/comu/data/class/SC_Session.php @ 11729

Revision 11729, 2.6 KB checked in by nanasess, 19 years ago (diff)

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/* セッション管理クラス */
9class SC_Session {
10    var $login_id;      // ログインユーザ名
11    var $authority;     // ユーザ権限
12    var $cert;          // 認証文字列(認証成功の判定に使用)
13    var $sid;           // セッションID
14    var $member_id;     // ログインユーザの主キー
15
16    /* コンストラクタ */
17    function SC_Session() {
18        // セッション開始
19        sfDomainSessionStart();
20
21        // セッション情報の保存
22        if(isset($_SESSION['cert'])) {
23            $this->sid = session_id();
24            $this->cert = $_SESSION['cert'];
25            $this->login_id = $_SESSION['login_id'];
26            $this->authority = $_SESSION['authority'];  // 管理者:0, 一般:1, 閲覧:2
27            $this->member_id = $_SESSION['member_id'];
28            // ログに記録する
29            gfPrintLog("access : user=".$this->login_id." auth=".$this->authority." sid=".$this->sid);
30        } else {
31            // ログに記録する
32            gfPrintLog("access error.");
33        }
34    }
35    /* 認証成功の判定 */
36    function IsSuccess() {
37        global $arrPERMISSION;
38        if($this->cert == CERT_STRING) {
39            if(isset($arrPERMISSION[$_SERVER['PHP_SELF']])) {
40                // 数値が自分の権限以上のものでないとアクセスできない。
41                if($arrPERMISSION[$_SERVER['PHP_SELF']] < $this->authority) {           
42                    return AUTH_ERROR;
43                }
44            }
45            return SUCCESS;
46        }
47       
48        return ACCESS_ERROR;
49    }
50   
51    /* セッションの書き込み */
52    function SetSession($key, $val) {
53        $_SESSION[$key] = $val;
54    }
55   
56    /* セッションの読み込み */
57    function GetSession($key) {
58        return $_SESSION[$key];
59    }
60   
61    /* セッションIDの取得 */
62    function GetSID() {
63        return $this->sid;
64    }
65   
66    /* セッションの破棄 */
67    function EndSession() {
68        // デフォルトは、「PHPSESSID」
69        $sname = session_name();
70        // セッション変数を全て解除する
71        $_SESSION = array();
72        // セッションを切断するにはセッションクッキーも削除する。
73        // Note: セッション情報だけでなくセッションを破壊する。
74        if (isset($_COOKIE[$sname])) {
75            setcookie($sname, '', time()-42000, '/');
76        }
77        // 最終的に、セッションを破壊する
78        session_destroy();
79        // ログに記録する
80        gfPrintLog("logout : user=".$this->login_id." auth=".$this->authority." sid=".$this->sid);
81    }
82   
83    // 関連セッションのみ破棄する。
84    function logout() {
85        unset($_SESSION['cert']);
86        unset($_SESSION['login_id']);
87        unset($_SESSION['authority']);
88        unset($_SESSION['member_id']);
89        // ログに記録する
90        gfPrintLog("logout : user=".$this->login_id." auth=".$this->authority." sid=".$this->sid);
91    }
92}
93?>
Note: See TracBrowser for help on using the repository browser.