2014-11-04 3 views
1

현재 Codeigniter 최신 버전을 만들고 있는데 사용자 시스템 관리를 만들려고하는데 아래 코드와 같이 세션을 설정했습니다. 그러나 Codeigniter는 기존 세션 행의 기존 행을 삭제하지 않고 새 세션을 삽입하려고합니다. 내 테이블 사용자가 멈추거나 모든 세션 행을 영원히 유지하고 세션 데이터의 기존 행을 삭제하거나 업데이트하지 않으면 내 세션이 더 이상 (5000rows 이상)의 사용자 세션 행을 저장하거나 데이터베이스 연결에 오류가 발생할 수 있습니다. .Laravel 최신 버전은 Codeigniter lates 버전과 같은 데이터베이스에 세션 행을 유지합니까?

Laravel이 데이터베이스에서 세션 행을 영원히 유지하거나 사용자가 브라우저를 닫거나 사용자가을 부른 후 자동으로 행을 삭제합니다.

또한 내 데이터베이스에 내 IP가 표시되지 않습니다.

$config['sess_cookie_name']  = 'ci_session'; 
$config['sess_expiration']  = 7200; 
$config['sess_expire_on_close'] = TRUE; 
$config['sess_encrypt_cookie'] = TRUE; 
$config['sess_use_database'] = TRUE; 
$config['sess_table_name']  = 'ci_sessions'; 
$config['sess_match_ip']  = TRUE; 
$config['sess_match_useragent'] = TRUE; 
$config['sess_time_to_update'] = 300; 

enter image description here

내 문제를 해결하는 데 도움이 가능하면 것은 좀 idear을 주시기 바랍니다 Laravel와

+0

laravel은 무슨 문제인지 모르지만 여기에서 문제가 있습니까? – ArjanSchouten

+0

무슨 뜻 이죠? 나는 내 사용자가 로그인 할 수 있고 sess_expiration = 100을 변경하더라도 세션을 2 시간 이상 유지할 수 있습니다. 여전히 db의 테이블 세션의 모든 행을 유지하는 것과 똑같습니다. – hengsopheak

+0

아마도 만료 된 세션을 삭제해야합니다. 너 자신이야. 당신은 cron을 만들 수 있습니다. – ArjanSchouten

답변

4

을 수행 할 수 있습니다 store session data 파일, 데이터베이스, 쿠키, 또는 memcached와 같은 캐시 또는 redis. Laravel은 버전 4.2에서 app/config/session.php에서 lottery 설정에 따라 만료 된 세션 항목을 정리하고, config/session.php에서 5.0에서 다음 lottery 값을 조정

/* 
|-------------------------------------------------------------------------- 
| Session Sweeping Lottery 
|-------------------------------------------------------------------------- 
| 
| Some session drivers must manually sweep their storage location to get 
| rid of old sessions from storage. Here are the chances that it will 
| happen on a given request. By default, the odds are 2 out of 100. 
| 
*/ 
'lottery' => [2, 100], 

가비지 콜렉션이 주어진 요청에 발생하는 확률을 변경합니다. 퍼지를 강제 실행하려면 확률을 1 : 1로 설정하십시오 (즉, lottery의 두 값이 일치하는 경우) Laravel은 다음 요청시 만료 된 세션 데이터를 모두 삭제해야합니다.

+0

대단히 감사합니다. – hengsopheak