- Timestamp:
- 2007/07/20 15:58:59 (19 years ago)
- Location:
- branches/feature-module-update
- Files:
-
- 1 edited
- 2 copied
-
. (copied) (copied from branches/rel) (1 prop)
-
data (copied) (copied from branches/rel/data)
-
data/class/SC_Session.php (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/feature-module-update
-
Property
svn:ignore
set to
.cache
.settings
.projectOptions
-
Property
svn:ignore
set to
-
branches/feature-module-update/data/class/SC_Session.php
r14989 r15078 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; // ¥í¥°¥¤¥ó¥æ¡¼¥¶¤Î¼ç¥¡¼15 var $uniqid; // ¥Ú¡¼¥¸Á«°Ü¤ÎÀµÅöÀ¥Á¥§¥Ã¥¯¤Ë»ÈÍÑ10 var $login_id; // ログインユーザ名 11 var $authority; // ユーザ権限 12 var $cert; // 認証文字列(認証成功の判定に使用) 13 var $sid; // セッションID 14 var $member_id; // ログインユーザの主キー 15 var $uniqid; // ページ遷移の正当性チェックに使用 16 16 17 /* ¥³¥ó¥¹¥È¥é¥¯¥¿*/17 /* コンストラクタ */ 18 18 function SC_Session() { 19 // ¥»¥Ã¥·¥ç¥ó³«»Ï19 // セッション開始 20 20 sfDomainSessionStart(); 21 21 22 // ¥»¥Ã¥·¥ç¥ó¾ðÊó¤ÎÊݸ22 // セッション情報の保存 23 23 if(isset($_SESSION['cert'])) { 24 24 $this->sid = session_id(); 25 25 $this->cert = $_SESSION['cert']; 26 26 $this->login_id = $_SESSION['login_id']; 27 $this->authority = $_SESSION['authority']; // ´ÉÍý¼Ô:0, °ìÈÌ:1, ±ÜÍ÷:227 $this->authority = $_SESSION['authority']; // 管理者:0, 一般:1, 閲覧:2 28 28 $this->member_id = $_SESSION['member_id']; 29 29 $this->uniqid = $_SESSION['uniq_id']; 30 30 31 // ¥í¥°¤ËµÏ¿¤¹¤ë31 // ログに記録する 32 32 gfPrintLog("access : user=".$this->login_id." auth=".$this->authority." sid=".$this->sid); 33 33 } else { 34 // ¥í¥°¤ËµÏ¿¤¹¤ë34 // ログに記録する 35 35 gfPrintLog("access error."); 36 36 } 37 37 } 38 /* ǧ¾ÚÀ®¸ù¤ÎȽÄê*/38 /* 認証成功の判定 */ 39 39 function IsSuccess() { 40 40 global $arrPERMISSION; 41 41 if($this->cert == CERT_STRING) { 42 42 if(isset($arrPERMISSION[$_SERVER['PHP_SELF']])) { 43 // ¿ôÃͤ¬¼«Ê¬¤Î¸¢¸Â°Ê¾å¤Î¤â¤Î¤Ç¤Ê¤¤¤È¥¢¥¯¥»¥¹¤Ç¤¤Ê¤¤¡£43 // 数値が自分の権限以上のものでないとアクセスできない。 44 44 if($arrPERMISSION[$_SERVER['PHP_SELF']] < $this->authority) { 45 45 return AUTH_ERROR; … … 52 52 } 53 53 54 /* ¥»¥Ã¥·¥ç¥ó¤Î½ñ¤¹þ¤ß*/54 /* セッションの書き込み */ 55 55 function SetSession($key, $val) { 56 56 $_SESSION[$key] = $val; 57 57 } 58 58 59 /* ¥»¥Ã¥·¥ç¥ó¤ÎÆÉ¤ß¹þ¤ß*/59 /* セッションの読み込み */ 60 60 function GetSession($key) { 61 61 return $_SESSION[$key]; 62 62 } 63 63 64 /* ¥»¥Ã¥·¥ç¥óID¤Î¼èÆÀ*/64 /* セッションIDの取得 */ 65 65 function GetSID() { 66 66 return $this->sid; 67 67 } 68 68 69 /** ¥æ¥Ë¡¼¥¯ID¤Î¼èÆÀ**/69 /** ユニークIDの取得 **/ 70 70 function getUniqId() { 71 // ¥æ¥Ë¡¼¥¯ID¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¥»¥Ã¥È¤¹¤ë¡£71 // ユニークIDがセットされていない場合はセットする。 72 72 if( empty($_SESSION['uniqid']) ) { 73 73 $this->setUniqId(); … … 76 76 } 77 77 78 /** ¥æ¥Ë¡¼¥¯ID¤Î¥»¥Ã¥È**/78 /** ユニークIDのセット **/ 79 79 function setUniqId() { 80 // ͽ¬¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¥é¥ó¥À¥àʸ»úÎó¤òÉÕÍ¿¤¹¤ë¡£80 // 予測されないようにランダム文字列を付与する。 81 81 $this->SetSession('uniqid', sfGetUniqRandomId()); 82 82 } 83 83 84 /* ¥»¥Ã¥·¥ç¥ó¤ÎÇË´þ*/84 /* セッションの破棄 */ 85 85 function EndSession() { 86 // ¥Ç¥Õ¥©¥ë¥È¤Ï¡¢¡ÖPHPSESSID¡×86 // デフォルトは、「PHPSESSID」 87 87 $sname = session_name(); 88 // ¥»¥Ã¥·¥ç¥óÊÑ¿ô¤òÁ´¤Æ²ò½ü¤¹¤ë88 // セッション変数を全て解除する 89 89 $_SESSION = array(); 90 // ¥»¥Ã¥·¥ç¥ó¤òÀÚÃǤ¹¤ë¤Ë¤Ï¥»¥Ã¥·¥ç¥ó¥¯¥Ã¥¡¼¤âºï½ü¤¹¤ë¡£91 // Note: ¥»¥Ã¥·¥ç¥ó¾ðÊó¤À¤±¤Ç¤Ê¤¯¥»¥Ã¥·¥ç¥ó¤òÇ˲õ¤¹¤ë¡£90 // セッションを切断するにはセッションクッキーも削除する。 91 // Note: セッション情報だけでなくセッションを破壊する。 92 92 if (isset($_COOKIE[$sname])) { 93 93 setcookie($sname, '', time()-42000, '/'); 94 94 } 95 // ºÇ½ªÅª¤Ë¡¢¥»¥Ã¥·¥ç¥ó¤òÇ˲õ¤¹¤ë95 // 最終的に、セッションを破壊する 96 96 session_destroy(); 97 // ¥í¥°¤ËµÏ¿¤¹¤ë97 // ログに記録する 98 98 gfPrintLog("logout : user=".$this->login_id." auth=".$this->authority." sid=".$this->sid); 99 99 } 100 100 101 // ´ØÏ¢¥»¥Ã¥·¥ç¥ó¤Î¤ßÇË´þ¤¹¤ë¡£101 // 関連セッションのみ破棄する。 102 102 function logout() { 103 103 unset($_SESSION['cert']); … … 106 106 unset($_SESSION['member_id']); 107 107 unset($_SESSION['uniqid']); 108 // ¥í¥°¤ËµÏ¿¤¹¤ë108 // ログに記録する 109 109 gfPrintLog("logout : user=".$this->login_id." auth=".$this->authority." sid=".$this->sid); 110 110 }
Note: See TracChangeset
for help on using the changeset viewer.
