source: branches/rel/data/class/SC_Session.php @ 12157

Revision 12157, 2.3 KB checked in by uehara, 17 years ago (diff)
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.