2013-03-20 3 views
0

나는 codeigniter를 가진 php를 처음 사용했습니다. 내가 codeigniter MVC 프레임 워크와 PHP 세션에 대한 문제가 있습니다. 내가 인해 세션 만료에 우리의 사이트에 로그인 할 때 세션 데이터를 저장하는 테이블 (CI-세션)을 사용했다 ..세션이 만료되지 않고 세션 데이터를 테이블에 저장하는 방법은 무엇입니까?

  1. 나는 세션 클래스에 var $sess_table_name = 'ci_sessions'; & var $sess_use_database = TRUE;을 설정했습니다.
  2. config.php에서 $config['sess_use_database'] = TRUE; & $config['sess_table_name']= 'ci_sessions';도 설정했습니다. 내가 NOT이 ci_sessions ( SESSION_ID의 VARCHAR (40) DEFAULT를있는 경우 테이블 만들기

    로 삼았 데이터베이스에 테이블을 만든 '0'NULL NOT

  3. , IP_ADDRESS의 VARCHAR (45) DEFAULT '0'NULL NOT, USER_AGENT의 VARCHAR (120) NOT NULL, last_activity의 INT (10) 부호 DEFAULT 0 NOT NULL, _ 데이터 텍스트 NULL NOT, PRIMARY KEY (SESSION_ID) KEY last_activity_idx (last_activity) );

그것에 대해 좋은 해결책을주십시오.

도와주세요.

+0

세션 테이블을 사용하지 않는 경우 로그인이 작동합니까? 또한 암호화 키를 설정 했습니까? –

+1

핵심 시스템 파일에서 Session.php를 변경하지 마십시오. 나쁜 생각. config.php를 사용하여 관련 옵션을 설정하십시오. –

+1

귀하의 개발 환경이나 라이브 환경에 대해서는 언급하지 않았지만 쿠키를 지우거나 쿠키 이름을 변경하십시오. 나는 데브와 라이브 환경을위한 쿠키가 세션을 망쳐 놓은 갈등을 일으키는 동일한 이름을 가지고 있기 때문에 내가 살았을 때 문제가 발생했다. –

답변

0

세션 만료에 대해서는 application-> config-> config.php로 이동하여 $ config [ 'sess_expiration']을 0으로 설정하십시오 ($ config [ 'sess_expiration'] = 0;). 그러면 세션 만료가 취소됩니다. 테이블에 세션을 저장에 관한

, 테이블은 다음과 같은 형태 있는지 확인 : 물론

CREATE TABLE IF NOT EXISTS `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL, 
ip_address varchar(45) 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`) 
); 

을 당신이 그것을에 필드를 추가하지만 마음에 그 구조를 유지할 수 있습니다.

+0

위와 같이했는데 해결책이 없습니다 ....... 도와주세요. –

관련 문제