diff --git a/classes/file/FileHandler.class.php b/classes/file/FileHandler.class.php index 63982cdd5..133251d59 100644 --- a/classes/file/FileHandler.class.php +++ b/classes/file/FileHandler.class.php @@ -27,7 +27,7 @@ function writeFile($file_name, $buff, $mode = "w") { $mode = strtolower($mode); if($mode != "a") $mode = "w"; - if(@!$fp = fopen($file_name,$mode)) return; + if(@!$fp = fopen($file_name,$mode)) return false; fwrite($fp, $buff); fclose($fp); } diff --git a/classes/session/SessionHandler.class.php b/classes/session/SessionHandler.class.php new file mode 100644 index 000000000..792c23ff3 --- /dev/null +++ b/classes/session/SessionHandler.class.php @@ -0,0 +1,56 @@ +session_path, $session_key); + return $session_file; + } + + function read($session_key) { + $filename = $this->getSessionFile($session_key); + if(!file_exists($filename)) return ''; + $buff = FileHandler::readFile($filename); + return substr($buff, strlen('')); + } + + function write($session_key, $val) { + if(!$val) return true; + + $filename = $this->getSessionFile($session_key); + + $buff = ''.$val; + return FileHandler::writeFile($filename, $buff); + } + + function destroy($session_key) { + $filename = $this->getSessionFile($session_key); + @unlink( $filename); + return true; + } + + function gc($maxlifetime) { + foreach (glob($this->session_path.'zbxe_session_*.php') as $filename) { + if (filemtime($filename) + $this->lifetime < time()) @unlink($filename); + } + return true; + } + } +?> diff --git a/config/config.inc.php b/config/config.inc.php index 10bf68a29..1fecccb21 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -22,20 +22,14 @@ if(__DEBUG__) { // php5이상이면 error handling을 handleError() 로 set - if (version_compare(phpversion(), '5.0') > 0) { - set_error_handler("handleError"); - } + //if (version_compare(phpversion(), '5.0') > 0) { + //set_error_handler("handleError"); + //} // 여기서부터 시작 시간으로 설정 define('__StartTime__', getMicroTime()); } - /** - * @brief 세션 설정 - **/ - @session_cache_limiter('no-cache, must-revalidate'); - @session_start(); - /** * @brief 기본적인 class 파일 include * @@ -43,6 +37,7 @@ **/ if(__DEBUG__) define('__RequireClassStartTime__', getMicroTime()); require_once("./classes/handler/Handler.class.php"); + require_once("./classes/session/SessionHandler.class.php"); require_once("./classes/xml/XmlParser.class.php"); require_once("./classes/context/Context.class.php"); require_once("./classes/db/DB.class.php"); @@ -54,4 +49,20 @@ require_once("./classes/module/ModuleHandler.class.php"); require_once("./classes/display/DisplayHandler.class.php"); if(__DEBUG__) define('__RequireClassEndTime__', getMicroTime()); + + /** + * @brief 세션 설정 + **/ + /* + $oSessionHandler = new SessionHandler(); + $aa = session_set_save_handler( + array(&$oSessionHandler,"open"), + array(&$oSessionHandler,"close"), + array(&$oSessionHandler,"read"), + array(&$oSessionHandler,"write"), + array(&$oSessionHandler,"destroy"), + array(&$oSessionHandler,"gc")); + */ + session_cache_limiter('no-cache, must-revalidate'); + session_start(); ?> diff --git a/config/func.inc.php b/config/func.inc.php index db41694be..145dc458e 100644 --- a/config/func.inc.php +++ b/config/func.inc.php @@ -68,7 +68,7 @@ * @param args object 변수로 선언된 인자값 * @return 처리결과 **/ - function executeQuery($query_id, $args) { + function executeQuery($query_id, $args = null) { $oDB = &DB::getInstance(); return $oDB->executeQuery($query_id, $args); } diff --git a/modules/member/member.class.php b/modules/member/member.class.php index f3c721e55..09a65b13a 100644 --- a/modules/member/member.class.php +++ b/modules/member/member.class.php @@ -87,6 +87,7 @@ FileHandler::makeDir('./files/member_extra_info/attach/image_name'); FileHandler::makeDir('./files/member_extra_info/attach/image_mark'); FileHandler::makeDir('./files/member_extra_info/attach/signature'); + FileHandler::makeDir('./files/session/'); return new Object(); } diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index a9281539b..e59f390a8 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -16,7 +16,7 @@ /** * @brief user_id, password를 체크하여 로그인 시킴 **/ - function procMemberLogin($user_id, $password) { + function procMemberLogin() { // 변수 정리 if(!$user_id) $user_id = Context::get('user_id'); $user_id = trim($user_id);