ÀÎÁõ ÅëÇÕÀÛ¾÷

°³¿ä

ÀÎÁõ¿¡ °ü·ÃµÈ ÀÛ¾÷Àº KCKAuth¿¡¼­ ó¸®ÇÏ¸é ¿©±â¿¡¼­ »ç¿ëÇÏ´Â »ç¿ëÀÚ Å×À̺íÀ» KCUserInfo°¡ ó¸® ÇÑ´Ù . µû¶ó¼­ ÀÎÁõ ÅëÇÕÀ» À§Çؼ­ ±âÁ¸¿¡ »ç¿ëÇÏ´Â »ç¿ëÀÚ Á¤º¸ Å×À̺íÀ» ÇϳªÀÇ class¿¡ ´ã¾Æ KCKAuth°¡ »ç¿ëÀÚ Á¤º¸¸¦ »õ·Î¸¸µç class¿¡¼­ »ç¿ëÇϵµ·Ï ÇÏ¸é µÈ´Ù.
¿©±â¿¡¼­´Â '·Î±×ÀÎ'¿¡ °ü·ÃµÈ ºÎºÐ¸¸ ó¸®ÇÕ´Ï´Ù. µ¥ÀÌÅÍÀÇ »èÁ¦ ¼öÁ¤Àº º°·Î ÄÚµùÇÏ½Ã¸é µË´Ï´Ù.
¾Æ·¡ÀÇ KCUserMan.php ÆÄÀÏÀÎ ¾Æ¹«°÷À̳ª ÀúÀåÇÏ°í ±× °æ·Î¸¸ ¾Ë°í °è½Ã¸é µË´Ï´Ù. ¿©±â¼­´Â kloclass¿¡ ÀúÀåÇß½À´Ï´Ù.
¼Ò½ºº¸±â

´ÙÀ½ ¼Ò½º´Â table À̸§ÀÌ 'userman' ÀÌ°í ´ÙÀ½°ú °°Àº field¸¦ °¡Áö°í ÀÖ½À´Ï´Ù.
 

create table userman (
   ID int(11) not null auto_increment,
   UserId varchar(20) not null,
   Passwd varchar(20) not null,
   Name varchar(20) not null,
   RegDate datetime not null default '0000-00-00 00:00:00',
   UniqueId varchar(33) not null,
   UserLevel char(1) not null default '0',
   IsAdmin char(1) not null default 'F',
   primary key (ID),
   index UserId (UserId))
   type=MyISAM;

 

<?
/* ************************************************************************
 * File Name   : KCUserMan.php
 * Class Name  : KCUserMan
 * File Type   : class
 * version     : Version. 0.1.0
 *              Copyright 2001, 2002, 2003 Na Jong Sung <konlo@konlo.net>
 *              All Rights Reserved.
 *              http://www.konlo.net
 * function    :
 * Update Date :
 ************************************************************************ */
L01: define("KCUSERMAN", true);
L02: if(!defined("KCDATABASE")) require(K_LIB_PATH . "/KCDataBase.php");
L03: class KCUserMan extends KCDataBase
L04: {
L05:     var $m_Id;
L06:     var $m_UserId;
L07:     var $m_Passwd;
L08:     var $m_Name;
L09:     var $m_UniqueId;
L10:     var $m_IsAdmin;    
L11:     var $m_TableName;
L12:     var $USER_LEVEL_ADMIN = 'T';
L13:
L14:     /* --------------------------------------------------
L15:      * access : public
L16:      * ctor.
L17:      * -------------------------------------------------- */
L18:     function KCUserMan()
L19:     {
L20:         $this->KCDataBase();
L21:         $this->m_TableName = "userman";
L22:     }
L23:
L24:     /* --------------------------------------------------
L25:      * access : protected
L26:      * override
L28:      * Move data From Database Row to member variable
L29:      * -------------------------------------------------- */
L30:     function LoadMemberValue($DbMan)
L31:     {
L32:         $this->m_Id       = $DbMan->f("id");
L33:         $this->m_UserId   = $DbMan->f("UserId");        
L34:         $this->m_Name     = $DbMan->f("Name");
L35:         $this->m_UniqueId = $DbMan->f("UniqueId");
L36:         $this->m_IsAdmin  = $DbMan->f("IsAdmin");
L37:     }
L38:     /* --------------------------------------------------
L39:      * access :
L40:      *
L41:      * -------------------------------------------------- */
L42:     function GetSelectSQL($Key)
L43:     {
L44:         return "SELECT * FROM `$this->m_TableName` WHERE UserId = '$Key' ";
L45:     }
L46:
L47:     /* --------------------------------------------------
L48:      * access :
L49:      *
L50:      * -------------------------------------------------- */
L51:     function CheckUserLogin($UserId, $Passwd)
L52:     {
L53:         $Ret = false;
L54:         $Query = "SELECT * FROM `$this->m_TableName` WHERE UserId = '$UserId' AND Passwd = PASSWORD('$Passwd')";
L55:         if($this->m_DbMan->query($Query))
L56:         {
L57:             if($this->m_DbMan->next_record())
L58:             {
L59:                 $this->LoadMemberValue($this->m_DbMan);                
L60:                 $Ret = true;
L61:             }
L62:         }
L63:         return $Ret;
L64:     }
L65:     /* --------------------------------------------------
L66:      * access :
L67:      *
L68:      * -------------------------------------------------- */    
L69:     function IsAdmin()
L70:     {
L71:         $Ret = false;
L72:         if($this->m_IsAdmin == $this->USER_LEVEL_ADMIN)
L73:         {           
L74:             $Ret = true;
L75:         }
L76:         return $Ret;
L77:     }        
L78: }
L79: ?>

1) ÇöÀç user table¿¡ ÇØ´çÇÏ´Â class¸¦ KCDataBase¿¡¼­ »ó¼Ó ¹Þµµ·Ï ÇÑ´Ù.


L01: define("KCUSERMAN", true);
L02: if(!defined("KCDATABASE")) require(K_LIB_PATH . "/KCDataBase.php");
L03: class KCUserMan extends KCDataBase

    - L01 : KCUSERMAN¸¦ Á¤ÀÇ ÇÕ´Ï´Ù.
    - L02 : KCUserManÀÇ ºÎ¸ð class°¡ µÉ KCDataBase Ŭ·¡½º¸¦ ·Îµå ÇÕ´Ï´Ù.(ÀÌ class´Â DatabaseÀÇ table¸¦ À§ÇÑ Å¬·¡½ºÀÔ´Ï´Ù.)
    - L03 : KCUserMan class¸¦ KCDataBase·ÎºÎÅÍ »ó¼ÓÀ» ¹Þ½À´Ï´Ù.

2) ¸â¹ö º¯¼ö ¼³Á¤
 

L05:     var $m_Id;
L06:     var $m_UserId;
L07:     var $m_Passwd;
L08:     var $m_Name;
L09:     var $m_UniqueId;
L10:     var $m_IsAdmin;    
L11:     var $m_TableName;
L12:     var $USER_LEVEL_ADMIN = 'T';

* »ç¿ëÀÚ user table¿¡ µû¶ó¼­ °¢°¢ º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.

º¯¼ö

¼³¸í

m_Id

row ¹øÈ£

m_UserId

»ç¿ëÀÚ ¾ÆÀ̵ð

m_Passwd

»ç¿ëÀÚ ÆÐ½º¿öµå

m_Name

»ç¿ëÀÚ À̸§

m_UniqueId

»ç¿ëÀÚ Unique ID À̰ÍÀº ÄíŰ ÀÎÁõÀ» À§Çؼ­ »ç¿ëÇÔ md5()ÇÔ¼ö·Î »ý¼º

m_IsAdmin

»ç¿ëÀÚ°¡ °ü¸®ÀÚ ±ÇÇÑÀ» °¡Áö°í ÀÖ´ÂÁö¸¦ °Ë»ç

m_TableName

user table À̸§

USER_LEVEL_AdMIN

°ü¸®ÀÚ ±ÇÇÑ °ª

    - L21 : table À̸§ ¼³Á¤ (userman)

3) ¸â¹ö º¯¼ö ÀúÀå ÇÔ¼ö

L24:     /* --------------------------------------------------
L25:      * access : protected
L26:      * override
L28:      * Move data From Database Row to member variable
L29:      * -------------------------------------------------- */
L30:     function LoadMemberValue($DbMan)
L31:     {
L32:         $this->m_Id       = $DbMan->f("id");
L33:         $this->m_UserId   = $DbMan->f("UserId");        
L34:         $this->m_Name     = $DbMan->f("Name");
L35:         $this->m_UniqueId = $DbMan->f("UniqueId");
L36:         $this->m_IsAdmin  = $DbMan->f("IsAdmin");
L37:     }

     - L32 ~ L35 : Àº »¡°£»öÀ¸·Î Ç¥½ÃµÈ ºÎºÐÀº °¢°¢ÀÇ field name À̸§ÀÔ´Ï´Ù.
                        ÀÌ ÇÔ¼ö´Â Database¿¡¼­ »ç¿ëÀÚ Á¤º¸¸¦ °¡Áö°í ¸â¹ö º¯¼ö¿¡ ÀúÀåÇÏ´Â ¿ªÇÒÀ» ÇÕ´Ï´Ù.

 3) ·Î±×ÀÎ °Ë»ç ÇÔ¼ö Ãß°¡

L47:     /* --------------------------------------------------
L48:      * access :
L49:      *
L50:      * -------------------------------------------------- */
L51:     function CheckUserLogin($UserId, $Passwd)
L52:     {
L53:         $Ret = false;
L54:         $Query = "SELECT * FROM `$this->m_TableName` WHERE UserId = '$UserId' AND Passwd = PASSWORD('$Passwd')";
L55:         if($this->m_DbMan->query($Query))
L56:         {
L57:             if($this->m_DbMan->next_record())
L58:             {
L59:                 $this->LoadMemberValue($this->m_DbMan);                
L60:                 $Ret = true;
L61:             }
L62:         }
L63:         return $Ret;
L64:     }

     - L54 :  ¿©±â½Ã¿¡¼­ »ç¿ëÀÚ°¡ Database¿¡ Á¸ÀçÇÏ´ÂÁö¸¦ °Ë»çÇÕ´Ï´Ù. À§¿¡¼­´Â »ç¿ëÀÚ ¾ÆÀ̵ð ºÎºÐ°ú ÆÐ½º¿öµå ºÎºÐ¸¸À» ó¸®ÇÏ¸é µË´Ï´Ù.

4) °ü¸®ÀÚ È®ÀÎ ÇÔ¼ö  

L65:     /* --------------------------------------------------
L66:      * access :
L67:      *
L68:      * -------------------------------------------------- */    
L69:     function IsAdmin()
L70:     {
L71:         $Ret = false;
L72:         if($this->m_IsAdmin == $this->USER_LEVEL_ADMIN)
L73:         {           
L74:             $Ret = true;
L75:         }
L76:         return $Ret;
L77:     }

     - L72 ~ L75 : ºÎºÐ¿¡¼­ °ü¸®ÀÚÀÎÁö¸¦ °Ë»çÇÏ´Â ºÎºÐÀÌ µé¾î °©´Ï´Ù. ¿©±â¼­´Â m_IsAdmin °ªÀ¸·Î °¡Áö°í °Ë»ç¸¦ Çߴµ¥ »çÀÌÆ®¸¶´Ù ¿øÇÏ                         ´Â Äڵ带 ³ÖÀ¸½Ã¸é µË´Ï´Ù.

5 ) »ç¿ëÀÚ Á¤º¸ °¡°Ü¿À´Â ÇÔ¼ö Ãß°¡

L42:     function GetSelectSQL($Key)
L43:     {
L44:         return "SELECT * FROM `$this->m_TableName` WHERE UserId = '$Key' ";
L45:     }

     - L44 : »ç¿ëÀÚ Á¤º¸¸¦ °¡Á®¿À±â À§ÇÑ Select¹®À» ¸¸µé¾î ÁÝ´Ï´Ù.

 2) KCKAuth¿¡¼­

 ÀÎÁõÀ» ó¸®ÇÏ´Â KCKAuth¿¡¼­ »ç¿ëÀÚ Á¤º¸¸¦ ´ã°í ÀÖ´Â KCUserInfo¸¦ KCUserManÀ¸·Î ¼öÁ¤ÇØÁÖ´Â °úÁ¤ÀÌ ÇÊ¿ä ÇÕ´Ï´Ù. ´ÙÀ½Àº KCKAuth.phpÀÇ ÀϺκРÀÔ´Ï´Ù.

<?
/* ************************************************************************
 * File Name   : KCKAuth.php
 * Class Name  : KCKAuth
 * File Type   : class
 * version     : Version. 0.1.0
 *              Copyright 2001, 2002, 2003 Na Jong Sung <konlo@konlo.net>
 *              All Rights Reserved.
 *              http://www.konlo.net
 * function    :
 * Modify      : 2003.10.06
                 IsAdmin  ÇÔ¼ö ¼öÁ¤
 ************************************************************************  */
L01: define("KCKAUTH", true);
L02: if(!defined("KCAUTH"))      require(K_LIB_PATH . "/KCAuth.php");
L03: if(!defined("KCUserMan"))  require(K_KLOCLASS_PATH . "/KCUserMan.php");
L04: //if(!defined("KCUSERINFO"))  require(K_KLOCLASS_PATH . "/KCUserInfo.php");
L05: if(!defined("KCPAGEADMIN")) require(K_KLOCLASS_PATH . "/KCPageAdmin.php");
L06:
L07: class KCKAuth extends KCAuth
L08: {
L09:     var $m_UserInfo;
L10:     var $m_IsAuth;
L11:     var $m_IsAuthFlag;
L12:     var $m_IsAdmin;
L13:     var $m_IsAdminFlag;
L14:     var $m_IsStaff;
L15:     var $m_IsStaffFlag;
L16:
L17:     var $m_Domain              =  COOKIE_DOMAIN;
L18:     var $COOKIE_NAME_USERID    = "KCUSERID";
L19:     var $COOKIE_NAME_NAME      = "KCUSERNAME";
L20:     var $COOKIE_NAME_USERTYPE  = "KCUSERUSERTYPE";
L21:     var $COOKIE_NAME_UNIQUEID  = "KCUNIQUEID";
L22:     var $COOKIE_NAMES;
L23:     var $USER_LEVEL_ADMIN      = "1";
L24:     /* --------------------------------------------------
L25:      * access : public
L26:      * ctor.
L27:      * -------------------------------------------------- */
L28:     function KCKAuth()
L29:     {
L30:         $this->KCAuth();
L31:         //$this->m_UserInfo    = new KCUserInfo;
L32:         $this->m_UserInfo    = new KCUserMan;
L33:         $this->m_IsAuth      = false;
L34:         $this->m_IsAuthFlag  = false;
L35:         $this->m_IsAdmin     = false;
L36:         $this->m_IsAdminFlag = false;
L37:         $this->m_IsStaff     = false;
L38:         $this->m_IsStaffFlag = false;
L39:         $this->COOKIE_NAMES  = array($this->COOKIE_NAME_USERID,
L40:                                      $this->COOKIE_NAME_NAME,
L41:                                      $this->COOKIE_NAME_USERTYPE,
L42:                                      $this->COOKIE_NAME_UNIQUEID);
L43:     }

1) KCUserMan ·Îµå ÇÏ±â  

L03: if(!defined("KCUserMan"))  require(K_KLOCLASS_PATH . "/KCUserMan.php");
L04: //if(!defined("KCUSERINFO"))  require(K_KLOCLASS_PATH . "/KCUserInfo.php");

     - L03 : KCUserManÀ» ·Îµå ÇÕ´Ï´Ù. ±âÁ¸¿¡ ÀÖ´Â L04 ÀÇ KCUserInfo´Â ÁÖ¼®Ã³¸® ÇÕ´Ï´Ù.

2) m_UserInfo ¿¡ KCUserMan class·Î ¼±¾ð

L31:         //$this->m_UserInfo    = new KCUserInfo;
L32:         $this->m_UserInfo    = new KCUserMan;

À̰ÍÀ¸·Î »ç¿ëÀÚ ÀÎÁõ ÅëÇÕÀ» ±¸ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù.

 Â÷·Ê