Ignore:
Timestamp:
2007/07/20 15:58:59 (19 years ago)
Author:
nanasess
Message:

r15064 から svn cp
とりあえず暫定コミット.

  • UTF-8 に変更
  • slib.php, glib.php のクラス化
  • LC_Page の抽象化(一部)
Location:
branches/feature-module-update
Files:
1 edited
2 copied

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update

    • Property svn:ignore set to
      .cache

      .settings

      .projectOptions
  • branches/feature-module-update/data/class/SC_Session.php

    r14989 r15078  
    66 */ 
    77 
    8 /* ¥»¥Ã¥·¥ç¥ó´ÉÍý¥¯¥é¥¹ */ 
     8/* セッション管理クラス */ 
    99class SC_Session { 
    10     var $login_id;      // ¥í¥°¥¤¥ó¥æ¡¼¥¶Ì¾ 
    11     var $authority;     // ¥æ¡¼¥¶¸¢¸Â 
    12     var $cert;          // ǧ¾Úʸ»úÎó(ǧ¾ÚÀ®¸ù¤ÎȽÄê¤Ë»ÈÍÑ) 
    13     var $sid;           // ¥»¥Ã¥·¥ç¥óID 
    14     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;         // ページ遷移の正当性チェックに使用 
    1616     
    17     /* ¥³¥ó¥¹¥È¥é¥¯¥¿ */ 
     17    /* コンストラクタ */ 
    1818    function SC_Session() { 
    19         // ¥»¥Ã¥·¥ç¥ó³«»Ï 
     19        // セッション開始 
    2020        sfDomainSessionStart(); 
    2121 
    22         // ¥»¥Ã¥·¥ç¥ó¾ðÊó¤ÎÊݸ 
     22        // セッション情報の保存 
    2323        if(isset($_SESSION['cert'])) { 
    2424            $this->sid = session_id(); 
    2525            $this->cert = $_SESSION['cert']; 
    2626            $this->login_id  = $_SESSION['login_id']; 
    27             $this->authority = $_SESSION['authority'];  // ´ÉÍý¼Ô:0, °ìÈÌ:1, ±ÜÍ÷:2 
     27            $this->authority = $_SESSION['authority'];  // 管理者:0, 一般:1, 閲覧:2 
    2828            $this->member_id = $_SESSION['member_id']; 
    2929            $this->uniqid    = $_SESSION['uniq_id']; 
    3030             
    31             // ¥í¥°¤Ëµ­Ï¿¤¹¤ë 
     31            // ログに記録する 
    3232            gfPrintLog("access : user=".$this->login_id." auth=".$this->authority." sid=".$this->sid); 
    3333        } else { 
    34             // ¥í¥°¤Ëµ­Ï¿¤¹¤ë 
     34            // ログに記録する 
    3535            gfPrintLog("access error."); 
    3636        } 
    3737    } 
    38     /* ǧ¾ÚÀ®¸ù¤ÎȽÄê */ 
     38    /* 認証成功の判定 */ 
    3939    function IsSuccess() { 
    4040        global $arrPERMISSION; 
    4141        if($this->cert == CERT_STRING) { 
    4242            if(isset($arrPERMISSION[$_SERVER['PHP_SELF']])) { 
    43                 // ¿ôÃͤ¬¼«Ê¬¤Î¸¢¸Â°Ê¾å¤Î¤â¤Î¤Ç¤Ê¤¤¤È¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¡£ 
     43                // 数値が自分の権限以上のものでないとアクセスできない。 
    4444                if($arrPERMISSION[$_SERVER['PHP_SELF']] < $this->authority) {            
    4545                    return AUTH_ERROR; 
     
    5252    } 
    5353     
    54     /* ¥»¥Ã¥·¥ç¥ó¤Î½ñ¤­¹þ¤ß */ 
     54    /* セッションの書き込み */ 
    5555    function SetSession($key, $val) { 
    5656        $_SESSION[$key] = $val; 
    5757    } 
    5858     
    59     /* ¥»¥Ã¥·¥ç¥ó¤ÎÆÉ¤ß¹þ¤ß */ 
     59    /* セッションの読み込み */ 
    6060    function GetSession($key) { 
    6161        return $_SESSION[$key]; 
    6262    } 
    6363     
    64     /* ¥»¥Ã¥·¥ç¥óID¤Î¼èÆÀ */ 
     64    /* セッションIDの取得 */ 
    6565    function GetSID() { 
    6666        return $this->sid; 
    6767    } 
    6868     
    69     /** ¥æ¥Ë¡¼¥¯ID¤Î¼èÆÀ **/  
     69    /** ユニークIDの取得 **/  
    7070    function getUniqId() { 
    71         // ¥æ¥Ë¡¼¥¯ID¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¥»¥Ã¥È¤¹¤ë¡£ 
     71        // ユニークIDがセットされていない場合はセットする。 
    7272        if( empty($_SESSION['uniqid']) ) { 
    7373            $this->setUniqId(); 
     
    7676    } 
    7777     
    78     /** ¥æ¥Ë¡¼¥¯ID¤Î¥»¥Ã¥È **/  
     78    /** ユニークIDのセット **/  
    7979    function setUniqId() { 
    80         // ͽ¬¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¥é¥ó¥À¥àʸ»úÎó¤òÉÕÍ¿¤¹¤ë¡£ 
     80        // 予測されないようにランダム文字列を付与する。 
    8181        $this->SetSession('uniqid', sfGetUniqRandomId()); 
    8282    } 
    8383     
    84     /* ¥»¥Ã¥·¥ç¥ó¤ÎÇË´þ */ 
     84    /* セッションの破棄 */ 
    8585    function EndSession() { 
    86         // ¥Ç¥Õ¥©¥ë¥È¤Ï¡¢¡ÖPHPSESSID¡× 
     86        // デフォルトは、「PHPSESSID」 
    8787        $sname = session_name(); 
    88         // ¥»¥Ã¥·¥ç¥óÊÑ¿ô¤òÁ´¤Æ²ò½ü¤¹¤ë 
     88        // セッション変数を全て解除する 
    8989        $_SESSION = array(); 
    90         // ¥»¥Ã¥·¥ç¥ó¤òÀÚÃǤ¹¤ë¤Ë¤Ï¥»¥Ã¥·¥ç¥ó¥¯¥Ã¥­¡¼¤âºï½ü¤¹¤ë¡£ 
    91         // Note: ¥»¥Ã¥·¥ç¥ó¾ðÊó¤À¤±¤Ç¤Ê¤¯¥»¥Ã¥·¥ç¥ó¤òÇ˲õ¤¹¤ë¡£ 
     90        // セッションを切断するにはセッションクッキーも削除する。 
     91        // Note: セッション情報だけでなくセッションを破壊する。 
    9292        if (isset($_COOKIE[$sname])) { 
    9393            setcookie($sname, '', time()-42000, '/'); 
    9494        } 
    95         // ºÇ½ªÅª¤Ë¡¢¥»¥Ã¥·¥ç¥ó¤òÇ˲õ¤¹¤ë 
     95        // 最終的に、セッションを破壊する 
    9696        session_destroy(); 
    97         // ¥í¥°¤Ëµ­Ï¿¤¹¤ë 
     97        // ログに記録する 
    9898        gfPrintLog("logout : user=".$this->login_id." auth=".$this->authority." sid=".$this->sid); 
    9999    } 
    100100     
    101     // ´ØÏ¢¥»¥Ã¥·¥ç¥ó¤Î¤ßÇË´þ¤¹¤ë¡£ 
     101    // 関連セッションのみ破棄する。 
    102102    function logout() { 
    103103        unset($_SESSION['cert']); 
     
    106106        unset($_SESSION['member_id']); 
    107107        unset($_SESSION['uniqid']); 
    108         // ¥í¥°¤Ëµ­Ï¿¤¹¤ë 
     108        // ログに記録する 
    109109        gfPrintLog("logout : user=".$this->login_id." auth=".$this->authority." sid=".$this->sid); 
    110110    } 
Note: See TracChangeset for help on using the changeset viewer.