그누보드4 세션을 DB 에서 관리하는 방법 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

그누보드4 세션을 DB 에서 관리하는 방법 정보

그누보드4 세션을 DB 에서 관리하는 방법

첨부파일

mw.session.db.lib.zip (872byte) 1243회 다운로드 2008-11-20 13:02:53

본문

세션을 DB 로 관리하면 여러 잇점이 있습니다.
보안이 향상되고 세션 관련 응용 프로그램 제작 및 연동이 수월해집니다.
필요하신 분은 아래 절차로 간단하게 세션 DB 연동이 가능합니다.

1. 세션 테이블 생성

CREATE TABLE IF NOT EXISTS `g4_session` (
  `id` varchar(32) NOT NULL,
  `ss_datetime` datetime NOT NULL,
  `ss_data` text NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `se_datetime` (`ss_datetime`)
);

2. 세션 테이블 선언

config.php 파일
// 세션 테이블 추가
$g4['session_table'] = $g4['table_prefix'] . "session";

3. 세션 핸들러 함수 선언

common.php 파일
// 기존 세션 디렉토리 설정은 주석처리
// session_save_path("{$g4['path']}/data/session");

// 핸들러 함수 정의 파일 include
include_once("$g4[path]/lib/mw.session.db.lib.php");

// 세션 핸들러 함수 선언
session_set_save_handler("_mw_session_open", "_mw_session_close", "_mw_session_read", "_mw_session_write", "_mw_session_destroy", "_mw_session_clean");

4. 세션 핸들러 함수 정의

첨부된 mw.session.db.lib.php 파일을 lib/ 디렉토리에 업로드하세요.

- 끝 - 

 

추천
18

댓글 34개

감사합니다. 오랫동안 못 만들어서 헤메던 것인데 잘 쓰겠습니다.
세션을 db에 넣었더니 확실히 속도가 좋아지고 있는거 같네요^^
속도를 높이려면 js를 압축하는게 효과가 가장 큽니다. 다음에는 css를 압축하구요. 마지막으로 세션을 db로...
js와 css를 압축한다는말이 무엇을 의미하는지요.
어디 설명이 되어있는것 알고 있다면 링크좀 부탁드립니다.

그런데 영문은 좀.. 저의 실력이 바닥이라...
너무 감사합니다. 잘 적용하였습니다.
한가지 질문 드려도 될까요..? 위의 사용방법에서 common.php 파일 설정부분이

// 기존 세션 디렉토리 설정은 주석처리
// session_save_path("{$g4['path']}/data/session");
 
이 밑에

if (isset($SESSION_CACHE_LIMITER))
    @session_cache_limiter($SESSION_CACHE_LIMITER);
else
    @session_cache_limiter("no-cache, must-revalidate");


이부분도 주석처리 하나요..? 하니면 그냥 놔둬도 되나요..??
감사합니다 잘사용하고 있습니다. ^^

혹시 "관리자화면"에서 "회원관리"에 보면

"최종접속"있는데 이게 변화을 안하네요 어디를 수정하면 될까요? 어디가 아니라 어떻겠네요 ..
직접 개발하려면 어려웠는데, 단 10분만에 적용~
강추하고 스크랩 합니다.

2년전 팁인데 적용되는 것 보면, 현재버전이랑 크게 문제 없는 것 같은데, 그누 기본 기능으로 채택은 안되나요???
1. 세션 테이블 생성
2. 세션 테이블 선언
3. 세션 핸들러 함수 선언
4. 세션 핸들러 함수 정의

다 했는데... 디비에 값이 안들어가지네요 ;;;
뭐를 더 해야 되나요?
기존 데이터폴더/세션에 저장할때는 일정시간 지난 세션을 지워줘야 하는데
DB저장방식은 그런게 불필요한지 여쭤보고 싶습니다~~!! 지금 세션문제때문에
문제가 계속 발생해서 이것이 좋은 대단이 될수 있을거 같아 기대가 되네요!!
g5에 적용시 해당 내용의 g4 -> g5 로 바꾼 후
1. lib파일을 utf8로 저장하고 db collation을 utf8_general_ci로 설정

2. config.php
// 세션 테이블 추가
$g5['session_table'] = "g5_session";

3. common.php
// 기존 세션 디렉토리 설정은 주석처리
//session_save_path(G5_SESSION_PATH);

// 핸들러 함수 정의 파일 include
include_once(G5_PATH."/lib/mw.session.db.lib.php");

로 변경하니 적용됩니다.
감사합니다.  스크렙해 갑니다.  그런데  db에 저장된 세션파일들이 뿔어나서 오래된 파일들을 정리가 필요할 듯 한데요.  어떻게 해야 하는지요?
안녕하세요?
Warning: preg_match() [function.preg-match]: Compilation failed: unmatched parentheses at offset 18 in /home/kdsp.kr/public_html/common.php on line 460
세션파일 일괄삭제 모르고 크릭해서 그런지 홈페이지 상단에 위와같이 뜨네요?
로그인하면 없어지고 하는데 로그인 하지 않을시에도 상단오류가 뜨지않게 하려면 어떻게 해야 하는지 초자라서 모르겠습니다.  파일 common.php on line 460줄에서 소스코드로 수정을 해야 되는지 소스코드 어떻게 넣야 되는지 부탁드립니다. (그누보드4 같은데 !! 확인부탁드립니다.

 홈주소 www.kdsp.kr/)
전체 44 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT