|
°ûÅÂȯ´Ô( master@venture.chonnam.ac.kr) ÀÇ ¼¼¼Ç¶óÀ̺귯¸® ¿¹Á¦ÀÔ´Ï´Ù. ================================================================
¸¹Àº ºÐµéÀÌ ¸ÞÀÏ·Î ¿äûÀ» ÇϼÌÁö¸¸ ÀÏÀÏÀÌ º¸³»¾î µå¸®±âµµ ÈûÀÌ µå³×¿ä..
ÇÑ 1°³¿ùÁò Çб³¸¦ ½¬¾î¼ ±³Àå¼±»ý´ÔÀÌ ¸ø¾Ë¾Æº¸½Ã¸é ¾î¿Áö °ÆÁ¤µË´Ï´Ù.
°ü·Ã ¶óÀ̺귯¸®°¡ 2°³ ´õ ÀÖ°í »ç¿ëÀÚ ÀÎÁõ°ú °ü¸®¿¡ °üÇÑ ¿¹Á¦µµ ¸¸µé°í ÀÖÀ¸´Ï °ð °ø°³ÇØ µå¸± ¿¹Á¤ÀÔ´Ï´Ù..
´Ù¸¥ ÇлýµéÀ» À§ÇÏ¿© °ÀǽÇÀ̳ª ´Ù¿î·Îµå ¸Þ´º¿¡ ¿Ã·ÁÁÖ½Ã¸é °í¸¿°Ú½À´Ï´Ù. ¿Ï¼ºµÈ µ¶¸³ÇÁ·Î±×·¥ÀÌ ¾Æ´Ï¶ó ¶óÀ̺귯¸®¶ó¼ ¾î¿Áö´Â ¸ð¸£°ÚÁö¸¸¿ä...
=============================================================
<? ###################################################################### ## ## Script Name : session.inc ## Author : jN-Online ## Code Version : 0.5 ## ######################################################################
###################################################################### ## ## Table Schema /*
CREATE TABLE session ( SessionID varchar(32) NOT NULL, SessionData BLOB NOT NULL, LastUsed timestamp(14), PRIMARY KEY (SessionID) );
*/
####################################################################### ## ## Usage : ## ## 1. ¼¼¼Ç±â´ÉÀ» Ãß°¡ÇÏ°í ½ÍÀº ÇÁ·Î±×·¥ÀÇ »ó´Ü(Çì´õ°¡ Àü¼ÛµÇ±â ÀÌÀü)¿¡¼ session.inc ¸¦ È£ÃâÇÑ´Ù. ## ex) require "session.inc" ; ## ## 2. ÆäÀÌÁö ³»ºÎÀÇ ¾Æ¹«°÷¿¡¼³ª $Session[] ¹è¿¿¡ °ªÀ» ÇÒ´çÇÏ°í »ç¿ëÇÑ´Ù. ## ex) $Session[user] = "testuser" ; ## $Session[mail] = "user@mail.your_host.com"; ; ## ## 3. °°Àº ¼¼¼Ç۰ªÀ¸·Î ÇÁ·Î±×·¥ÀÌ È£ÃâµÉ °æ¿ì ÀÌÀü¿¡ $Session[] ¹è¿¿¡ ÇÒ´çÇÏ¿´´ø º¯¼ö¿Í °ªµéÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ## ex) echo $Session[user]." , ".$Session[mail] ; ## ## 4. ÆäÀÌÁö°¡ ´Þ¶óµµ °°Àº ¼¼¼Ç۸¦ °¡Áö¸é ÀÌÀü¿¡ Á¤ÀÇÇß´ø º¯¼ö¿Í °ªÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ## ## ## ÁÖÀÇ»çÇ× : ## ## 1. php4(Zend)·Î ½ÇÇàµÇ´Â ȯ°æÀÇ °æ¿ì »õ·Î Ãß°¡µÈ "Session"°ü·Ã ÇÔ¼ö¶§¹®¿¡ ÇÔ¼ö¸íÀÌ Ãæµ¹ÇÏ¿© Á¦´ë·Î µ¿ÀÛÇÏÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ## 2. 1ÀÇ °æ¿ì session(ȤÀº. Session)À¸·Î ½ÃÀÛÇÏ´Â ÇÔ¼ö ¹× º¯¼ö¸íÀ» ´Ù¸¥°ÍÀ¸·Î ¹Ù²Ù¸é µË´Ï´Ù. ## 3. º» ¶óÀ̺귯¸®´Â ÆäÀÌÁöÀÇ Çì´õ°¡ Àü¼ÛµÇ±â ÀÌÀü¿¡ ½ÇÇàµÇ¾î¾ß ÇÕ´Ï´Ù. ##
####################################################################### ## ## º¯¼ö ¹× ȯ°æ ¼³Á¤ : ## ( »ç¿ëȯ°æ¿¡ µû¶ó ¾Æ·¡ º¯¼ö°ªµéÀ» º¯°æÇϽñ⠹ٶø´Ï´Ù.)
$Session_Host = "localhost" ; // µ¥ÀÌÅͺ£À̽º ¼¹ö (MySQL 3.22 ÀÌ»ó) $Session_User = "" ; // µ¥ÀÌÅͺ£À̽º »ç¿ëÀÚ $Session_Password = "" ; // µ¥ÀÌÅͺ£À̽º ÆÐ½º¿öµå $Session_Database = "bbs" ; // session Å×À̺íÀÌ À§Ä¡ÇÑ µ¥ÀÌÅͺ£À̽º¸í
$Cookie_Mode = 1 ; // ÄíŰ »ç¿ë¿©ºÎ ( 1: »ç¿ë, 0: »ç¿ë¾ÈÇÔ ) $Session_URL1 = "http://www.your_host.com" ; // ¼¼¼Ç°æ·Î ( "$Cookie_Mode = 1" À϶§¸¸ »ç¿ë ) $Session_URL2 = "bbs" ; // È£½ºÆ®¸í ÀÌÈÄÀÇ °æ·Î ( Default : http://www.your_host.com/bbs )
## ¼³Á¤¿Ï·á ( ÀÌÈĺÎÅÍ´Â º¯°æÇÏÁö ¾Ê¾Æµµ µË´Ï´Ù.) #######################################################################
// µ¥ÀÌÅͺ£À̽º Á¢¼Ó
function session_connect() {
global $Session_Host, $Session_User, $Session_Password, $Session_Database;
mysql_pconnect($Session_Host, $Session_User, $Session_Password); mysql_select_db($Session_Database);
}
// µ¥ÀÌÅͺ£À̽º ¿¡·¯Ã¼Å©
function mysql_check_error() {
if(mysql_errno()) { echo "µ¥ÀÌÅͺ£À̽º ¿¡·¯ : " . mysql_errno() . " " . mysql_error()." n"; }
}
// ¼¼¼Ç±â´É ½ÃÀÛ
function session_start($Cookie_mode, $Session_URL1, $Session_URL2) {
global $SessionID, $Session ;
register_shutdown_function("session_end") ; // ÆäÀÌÁö°¡ ³¡³¯¶§ ¼¼¼Ç±â´É ÀÚµ¿Á¾·á ( ÁÖÀÇ : ¼¼¼ÇÀº »ì¾ÆÀÖ°í ·Î±×¾Æ¿ô µÇÁö ¾ÊÀ½ )
session_connect(); // µ¥ÀÌÅͺ£À̽º Á¢¼Ó
if($SessionID) {
$sql = "SELECT SessionData FROM session WHERE SessionID='$SessionID' AND LastUsed > DATE_SUB(NOW(), INTERVAL 1 HOUR)"; // ÆäÀÌÁö ¼¼¼Ç۰¡ Á¦°øµÇ´Â °æ¿ì ÃÖÁ¾ »ç¿ëÈÄ 1½Ã°£ ÀÌÀüÀÇ ¼¼¼ÇÀ» °ËÃâ
$result = mysql_query($sql); mysql_check_error();
if($row = mysql_fetch_array($result)) { $Session = unserialize($row[0]) ; return; // ÁÖ¾îÁø ¼¼¼Ç۰ª¿¡ ´ëÀÀÇÏ´Â ·¹Äڵ尡 ÀÖÀ¸¸é SessionData ÇʵåÀÇ °ªÀ» $Session[] À¸·Î ¹è¿È }
}
// else , »õ·Î¿î ¼¼¼ÇŰ ¹ßÇà $SessionID = md5(uniqid("")); // md5 ¿Í uniqid ¸¦ ÀÌ¿ëÇÏ¿© À¯ÀÏÇÑ ¼¼¼ÇŰ °ªÀ» ¹ßÇà $Session = array(); // Session À» ¹è¿È ( ÁÖÀÇ : »õ·Î¿î ¼¼¼Ç۸¦ ¹ßÇàÇÏ¿´±â ¶§¹®¿¡ $Session[] ¹è¿ÀÌ ºñ¾îÀÖÀ½
if($Cookie_mode == 1) { // Ŭ¶óÀÌ¾ðÆ®¿¡ ¼¼¼Ç۰ªÀ» ÄíŰ·Î ¹ßÇà SetCookie("SessionID", $SessionID, 0, $Session_URL2, $Session_URL1); }
}
// ¼¼¼Ç±â´É Á¾·á
function session_end() {
global $SessionID, $Session;
if(isset($SessionID)) { // ¼¼¼Ç۰¡ Á¸ÀçÇÏ¸é µ¿ÀÏ Å°°ªÀÌ Á¸ÀçÇÏ´Â ·¹ÄÚµåÀÇ °ªÀ» ¼öÁ¤ mysql_query("REPLACE INTO session (SessionID, SessionData) " . "VALUES ('$SessionID', '" . AddSlashes(serialize($Session)) . "')"); }
mysql_query("DELETE FROM session WHERE LastUsed < DATE_SUB(NOW(), INTERVAL 1 HOUR)"); // ¸¶Áö¸· »ç¿ëÈÄ 1½Ã°£ÀÌ Áö³ ¼¼¼ÇÀ» »èÁ¦
}
// ¼¼¼Ç ¿µ±¸»èÁ¦
function session_abandon() {
global $SessionID, $Session;
mysql_query("DELETE FROM session WHERE SessionID='$SessionID'");
unset($SessionID); unset($Session);
}
session_start() ; // ¼¼¼Ç±â´É ½ÃÀÛ
?>
|