Changeset 11730 for branches/comu/data/class/SC_Session.php
- Timestamp:
- 2007/03/11 06:27:25 (19 years ago)
- File:
-
- 1 edited
-
branches/comu/data/class/SC_Session.php (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/comu/data/class/SC_Session.php
r11729 r11730 6 6 */ 7 7 8 /* セッション管理クラス*/8 /* ¥»¥Ã¥·¥ç¥ó´ÉÍý¥¯¥é¥¹ */ 9 9 class SC_Session { 10 var $login_id; // ログインユーザ名11 var $authority; // ユーザ権限12 var $cert; // 認証文字列(認証成功の判定に使用)13 var $sid; // セッションID14 var $member_id; // ログインユーザの主キー10 var $login_id; // ¥í¥°¥¤¥ó¥æ¡¼¥¶Ì¾ 11 var $authority; // ¥æ¡¼¥¶¸¢¸Â 12 var $cert; // ǧ¾Úʸ»úÎó(ǧ¾ÚÀ®¸ù¤ÎȽÄê¤Ë»ÈÍÑ) 13 var $sid; // ¥»¥Ã¥·¥ç¥óID 14 var $member_id; // ¥í¥°¥¤¥ó¥æ¡¼¥¶¤Î¼ç¥¡¼ 15 15 16 /* コンストラクタ*/16 /* ¥³¥ó¥¹¥È¥é¥¯¥¿ */ 17 17 function SC_Session() { 18 // セッション開始18 // ¥»¥Ã¥·¥ç¥ó³«»Ï 19 19 sfDomainSessionStart(); 20 20 21 // セッション情報の保存21 // ¥»¥Ã¥·¥ç¥ó¾ðÊó¤ÎÊݸ 22 22 if(isset($_SESSION['cert'])) { 23 23 $this->sid = session_id(); 24 24 $this->cert = $_SESSION['cert']; 25 25 $this->login_id = $_SESSION['login_id']; 26 $this->authority = $_SESSION['authority']; // 管理者:0, 一般:1, 閲覧:226 $this->authority = $_SESSION['authority']; // ´ÉÍý¼Ô:0, °ìÈÌ:1, ±ÜÍ÷:2 27 27 $this->member_id = $_SESSION['member_id']; 28 // ログに記録する28 // ¥í¥°¤ËµÏ¿¤¹¤ë 29 29 gfPrintLog("access : user=".$this->login_id." auth=".$this->authority." sid=".$this->sid); 30 30 } else { 31 // ログに記録する31 // ¥í¥°¤ËµÏ¿¤¹¤ë 32 32 gfPrintLog("access error."); 33 33 } 34 34 } 35 /* 認証成功の判定*/35 /* ǧ¾ÚÀ®¸ù¤ÎȽÄê */ 36 36 function IsSuccess() { 37 37 global $arrPERMISSION; 38 38 if($this->cert == CERT_STRING) { 39 39 if(isset($arrPERMISSION[$_SERVER['PHP_SELF']])) { 40 // 数値が自分の権限以上のものでないとアクセスできない。40 // ¿ôÃͤ¬¼«Ê¬¤Î¸¢¸Â°Ê¾å¤Î¤â¤Î¤Ç¤Ê¤¤¤È¥¢¥¯¥»¥¹¤Ç¤¤Ê¤¤¡£ 41 41 if($arrPERMISSION[$_SERVER['PHP_SELF']] < $this->authority) { 42 42 return AUTH_ERROR; … … 49 49 } 50 50 51 /* セッションの書き込み*/51 /* ¥»¥Ã¥·¥ç¥ó¤Î½ñ¤¹þ¤ß */ 52 52 function SetSession($key, $val) { 53 53 $_SESSION[$key] = $val; 54 54 } 55 55 56 /* セッションの読み込み*/56 /* ¥»¥Ã¥·¥ç¥ó¤ÎÆÉ¤ß¹þ¤ß */ 57 57 function GetSession($key) { 58 58 return $_SESSION[$key]; 59 59 } 60 60 61 /* セッションIDの取得*/61 /* ¥»¥Ã¥·¥ç¥óID¤Î¼èÆÀ */ 62 62 function GetSID() { 63 63 return $this->sid; 64 64 } 65 65 66 /* セッションの破棄*/66 /* ¥»¥Ã¥·¥ç¥ó¤ÎÇË´þ */ 67 67 function EndSession() { 68 // デフォルトは、「PHPSESSID」68 // ¥Ç¥Õ¥©¥ë¥È¤Ï¡¢¡ÖPHPSESSID¡× 69 69 $sname = session_name(); 70 // セッション変数を全て解除する70 // ¥»¥Ã¥·¥ç¥óÊÑ¿ô¤òÁ´¤Æ²ò½ü¤¹¤ë 71 71 $_SESSION = array(); 72 // セッションを切断するにはセッションクッキーも削除する。73 // Note: セッション情報だけでなくセッションを破壊する。72 // ¥»¥Ã¥·¥ç¥ó¤òÀÚÃǤ¹¤ë¤Ë¤Ï¥»¥Ã¥·¥ç¥ó¥¯¥Ã¥¡¼¤âºï½ü¤¹¤ë¡£ 73 // Note: ¥»¥Ã¥·¥ç¥ó¾ðÊó¤À¤±¤Ç¤Ê¤¯¥»¥Ã¥·¥ç¥ó¤òÇ˲õ¤¹¤ë¡£ 74 74 if (isset($_COOKIE[$sname])) { 75 75 setcookie($sname, '', time()-42000, '/'); 76 76 } 77 // 最終的に、セッションを破壊する77 // ºÇ½ªÅª¤Ë¡¢¥»¥Ã¥·¥ç¥ó¤òÇ˲õ¤¹¤ë 78 78 session_destroy(); 79 // ログに記録する79 // ¥í¥°¤ËµÏ¿¤¹¤ë 80 80 gfPrintLog("logout : user=".$this->login_id." auth=".$this->authority." sid=".$this->sid); 81 81 } 82 82 83 // 関連セッションのみ破棄する。83 // ´ØÏ¢¥»¥Ã¥·¥ç¥ó¤Î¤ßÇË´þ¤¹¤ë¡£ 84 84 function logout() { 85 85 unset($_SESSION['cert']); … … 87 87 unset($_SESSION['authority']); 88 88 unset($_SESSION['member_id']); 89 // ログに記録する89 // ¥í¥°¤ËµÏ¿¤¹¤ë 90 90 gfPrintLog("logout : user=".$this->login_id." auth=".$this->authority." sid=".$this->sid); 91 91 }
Note: See TracChangeset
for help on using the changeset viewer.
