php, codeigniter

세션(session) 이용하기

디츠 2014. 10. 15. 19:08

* /application/autoload.php

$autoload['libraries'] = array(); // 부분에 session을 설정하는게 편함

* /application/config.php

$config['encryption_key'] = ''; // 이 부분에 암호화 룰을 설정한다
$config['sess_use_database'] = FALSE; // TRUE 권장, 디비로 세션 정보 저장
$config['sess_table_name'] = 'ci_sessions'; // 테이블 이름
$config['sess_match_ip'] = FALSE; // TRUE 권장, IP 매칭

* 테이블 스키마

CREATE TABLE IF NOT EXISTS `ci_sessions` (
	session_id varchar(40) DEFAULT '0' NOT NULL,
	ip_address varchar(16) DEFAULT '0' NOT NULL,
	user_agent varchar(120) NOT NULL,
	last_activity int(10) unsigned DEFAULT 0 NOT NULL,
	user_data text NOT NULL,
	PRIMARY KEY (session_id),
	KEY `last_activity_idx` (`last_activity`)
);

* 컨트롤러

- 저장 : $this->session->set_userdata('session_test','value');
- 삭제 : $this->session->unset_userdata('session_test');
- 확인 : echo $this->session->userdata('session_test');

* flashdata - 단 한버만 사용되고 삭제되는 세션

저장 : $this->session->set_flashdata('message','로그인 실패');
확인 : echo $this->session->flashdata('message');