2011-08-03 2 views
-1

PHP로 웹 응용 프로그램을 코딩 중이며 MySQL 데이터베이스에 세션을 저장하는 유명한 저장 처리기로 세션을 사용하고 있습니다. 나는 session.gc_maxlifetime을 604800 (1 주일)로 설정했다. 그래서, "Remember Me"기능을 알고 싶습니다. 쿠키를 사용해야합니까, 아니면 충분합니까? 세션은 항상 DB에 1 주일간 저장되므로 창을 닫으면 열어 본 상태입니다.Session.gc_maxlifetime VS 쿠키

URL에 SID를 사용하지 않고 세션 테이블에 sid, time, data; 시간은 매번 업데이트됩니다. 따라서 사용자가 창을 닫으면 세션은 그 후 1 주일 동안 등록되고 돌아 오면 다시 업데이트됩니다.

답변

1

쿠키가 필요합니다. 가비지 컬렉터는 서버용입니다. PHP가 세션 데이터를 서버에서 제거 할시기를 알려줍니다. 클라이언트는 여전히 세션에 액세스하기 위해 세션 식별자를 필요로합니다. 세션 식별자는 대개 쿠키에 저장됩니다. 따라서 쿠키가 "시간 초과"되어 웹 브라우저에서 쿠키 캐시에서 제거되면 웹 브라우저는 더 이상 쿠키를 보내지 않으므로 서버가 더 이상 클라이언트를 세션과 일치시킬 수 없습니다.

요약 : 두 부분의 세션이 있습니다. 서버에 저장된 실제 데이터와 클라이언트가 서버의 세션 데이터에 액세스 할 수 있음을 서버에 알리는 쿠키. 누락 된 것이 있으면 더 이상 작동하지 않습니다.

+0

나는 매번 세션을 연장하고 있기 때문에 그것이 일을한다고 생각합니까? !! –

+0

컴퓨터의 전원을 껐다가 6 일 후에 다시 켜면 쿠키를 새로 고칠 수 없기 때문에 쿠키의 유효 기간은 1 주일입니다. – Shi

+0

나는 그냥 창문에 세션을 제거하는 크롬에 그것을 시험해 보라, FF는 이상하지 않았다 !! –

1

내가 기억하고 싶다면 기억해야 할 기능이 있습니까? 쿠키를 사용해야합니까, 아니면 세션이 충분합니까? !!

세션의 주당 시간 제한은 훨씬 커야합니다. 최대 1 시간 30 분주세요. 세션은 사용자가 활성화되어있는 동안에 만 활성화되어야합니다.

그래서 쿠키를 찾으십시오. 사용 가능한 오픈 소스 소프트웨어의 기존 구현을 조사하십시오.