Programming/PHP

PHP를 이용하여 Session을 DB에 저장하기

minarae7 2008. 10. 23. 16:52
728x90
반응형

Session은 일반적으로 파일에 저장되도록 되어있다. 하지만 경우에 따라서 Session을 DB에 저장하여 각 도메인별로 Session을 공유하여야 하는 경우가 있다. 파일의 특성상 서버가 다를 경우에는 Session을 공유할 수 없다. 따라서 Session을 공유하기 위해서 DB를 사용하여 Session을 저장하므로 여러 도메인에서 Session을 공유할 수 있도록 한다.

구글에서 'php session db'로 검색하면 여러 사이트가 나온다. 그 중에서 하나를 골라서 코드를 가져와서 간단하게 끝날 수 있을 것이라고 생각했다. 하지만 코드에서 버그가 있어서 한참 헤맨 결과 해결할 수 있었다. 다행히 생각보다 쉽게 문제를 해결할 수 있었다.

Site With The Lamp

위는 참고 사이트이다. 여기서 사이트에서 코드를 다운받아서 작업하였다.

본인이 작업하여 수정한 파일은 첨부한다.



수정한 부분은 쿼리에 관련된 부분이다. 참고 사이트에 가보면 테이블 스키마가 있다. 스키마는 아래와 같다.

CREATE TABLE sessions (
session_id varchar(32) NOT NULL default '',
session_data text NOT NULL,
session_expiration timestamp NOT NULL,
PRIMARY KEY  (session_id));

쿼리에서 유효시간과 관련된 내용이 잘못되어있다. 이 부분에 대한 수정이 필요하여 수정하였다.

이 작업에서 PHP에서 Session에 관련된 함수의 핸들러를 만들어 등록하여 사용할 수 있다는 것을 새로 알게되었다.
문의 사항은 메일로~

728x90
반응형

'Programming > PHP' 카테고리의 다른 글

웹개발 준비 2 - Codeigniter 설치 및 설정  (0) 2014.11.20
웹개발 준비 1 - nginx + php 설정하기  (0) 2014.11.19
codeigniter 2.2.0 암호화  (0) 2014.11.07
wkhtmltopdf  (0) 2013.04.15
PHP에서 세션 공유하기  (1) 2008.11.24