ÀÎÁõ ÅëÇÕÀÛ¾÷
°³¿ä
ÀÎÁõ¿¡ °ü·ÃµÈ ÀÛ¾÷Àº 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;
|
À̰ÍÀ¸·Î »ç¿ëÀÚ ÀÎÁõ ÅëÇÕÀ» ±¸ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù.
Â÷·Ê