PHP 에서 SESSION 사용 중의 약간의 경험 총화
3678 단어 SESSION
'sess_" + 'session_id';
입 니 다. 이렇게 해서 기본 적 인 설정 을 완성 했다.그러면 다음 http 요청 을 시작 할 때 먼저 브 라 우 저 는 현재 도 메 인 이름 에 있 는 모든 쿠키 이름과 값 을 보 냅 니 다.그러면 서버 는 쿠키 에 있 는 session 에 따라id 는 session 파일 을 읽 으 러 다 니 며 이 session 이 누구 에 속 하 는 지 헷 갈 리 지 않 습 니 다.이 단 계 는 구체 적 으로 다음 과 같 습 니 다.SESSION 은 브 라 우 저 에 대한 유일한 쿠키 변수 session 을 보 냅 니 다.id,이 sessionid 변 수 는 이름,값 이 있 습 니 다.변수 이름(name)은 기본적으로 PHPSESSID 이 고 변수 값(value)은 apache 에서 무 작위 로 생 성 된 문자열 입 니 다.rvag9m368vim7k8g4v7k2ank 70 과 유사 합 니 다.흔히 말 하 는 sessionid 는 이 유일한 문자열 rvag9m368vim7k8g4v7k2ank 70 을 말 합 니 다.구체 적 으로 FF 의 HTTP 응답 에서 다음 과 같 습 니 다:sessionstart(); 프로그램 에서 위의 한 마디 가 위의 기능 을 완 료 했 습 니 다.만약 브 라 우 저가 PHPSESSID 의 쿠키 를 보 내지 않 았 다 면 이 쿠키 를 읽 으 면 같은 세 션 을 유지 할 수 있 습 니 다.자,session 의 작업 원 리 를 알 았 으 니 서버 쪽 sessrvag9m368vim7k8g4v7k2ank 70 이 파일 을 수 동 으로 삭 제 했 습 니 다.그러면 session 이 효력 을 잃 습 니 다.브 라 우 저 쿠키 가 효력 을 잃 으 면 session 은 효력 을 잃 습 니 다.수 동 상태 에서:서버 쪽 에 서 는 session 을 사용 할 수 있 습 니 다.destroy()또는 sessionunset()를 무효 화 합 니 다.브 라 우 저 에서:바로?setcookie('PHPSESSID','',123); 쿠키 를 만 료 시 키 거나 다른 방식 으로 만 들 지만 즉시 효력 을 잃 을 수 없 습 니까?session_set_cookie_params($time);//현재 시간 스탬프 의 초,예 를 들 어 60 초 후 만 료,시간 스탬프+자신 이 설정 한 시간 을 사용 하지 마 십시오.위 에서 말 한 것 은 모두 session 을 기한 을 앞 당 기 는 것 이지 만,직접 session 을 지연 시 키 려 면 안 됩 니까?설정 수정 제외(session.gcmaxlifetime)안 돼 요.php.ini 에서 session.gcmaxlifetime 설정 만 료 시간,이 시간 이 되면 session.gcprobability /session.gc_divisor 의 확률 이 회수 되 었 습 니 다.이 시간 에 GC 프로 세 스 를 시작 하면 GC 는 session 파일 의 수정 시간(mtime)을 읽 고 현재 시간 보다 큰 것 을 발견 하면 session.gc 보다 큰 것 을 발견 합 니 다.maxlifetime,즉시 삭제 합 니 다.여기 서 우 리 는 이 세 션 을 어떻게 유지 하 는 지 알 게 되 었 습 니 다.session.gc 에 만 있 을 수 있 습 니 다.maxlifetime 에 서 는 사용자 가 방문 해 야 합 니 다.방문 할 때마다 session 을 수정 해 야 합 니 다.그러면 이 session 은 session.gc 가 더 많아 집 니 다.maxlifetime 의 생존 시간.그리고 session.cookielifetime,브 라 우 저의 생존 시간 을 설정 합 니 다.기본 값 은 0 입 니 다.IE 에서 저 는 정상 적 인 것 을 발 견 했 습 니 다.브 라 우 저 재 부팅 즉 쿠키 가 효력 을 잃 었 습 니 다.FF 아래 는 계속 존재 합 니 다.session.cookie 설정lifetime 는 sessionset_cookie_params, ?session_set_cookie_params(60);//60 s session_start(); session.gc_maxlifetime 과 session.cookielifetime 은 공동으로 session 의 생존 시간 을 결정 한다.방금 Firefox 쿠키 세 션 이 만 료 된 자 료 를 찾 았 는데,아래 와 같 습 니 다 This is apparently by design.Check out this Bugzilla bug:https://bugzilla.mozilla.org/show_bug.cgi?id=443354 Firefox has a feature where you close Firefox and it offers to save all your tabs, and then you restore the browser and those tabs come back. That's called session restore. What I didn't realize is that it'll also restore all the session cookies for those pages too! It treats it like you had never closed the browser. This makes sense in the sense that if your browser crashed you get right back to where you were, but is a little disconcerting for web devs used to session cookies getting cleared. I've got some old session cookies from months ago that were set by sites I always have open in tabs. To test this out, close all the tabs in your browser,then close the browser and restart it.I think the session cookies for your site should clear in that case.그렇지 않 으 면 you'd have to turn off session restore.이것 은 불 여우의 세 션 저장 기능 입 니 다.FF 디자인 이 그렇습니다.이 close all the tabs in your browser,then close the browser and restart it 테스트 를 통 해 저장 되 어 있 는 지 확인 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
PHP 에서 SESSION 사용 중의 약간의 경험 총화텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.