일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Ajax
- function
- Forms
- string
- Linux
- file-upload
- JSON
- variables
- OOP
- MySQL
- curl
- Arrays
- HTML
- 경영
- Regex
- php
- 웹하드순위
- UTF-8
- 무료다운로드쿠폰
- JavaScript
- date
- Laravel
- 웹하드추천
- Session
- post
- 전략
- jquery
- composer-php
- Apache
- Today
- Total
개발! 딱 깔끔하고 센스있게!
PHP 세 션 을 어떻게 회복 합 니까? 본문
사용자 의 세 션 id 를 'PHPHPSSID' 라 는 쿠키 에 저 장 했 습 니 다.
이 쿠키 는 클 라 이언 트 브 라 우 저 에 저장 되 고 서버 에 있 는 세 션 과 일치 하여 2 와 연결 되도록 합 니 다.
브 라 우 저 종료 후세 션 정보 가 사 라 졌 지만 클 라 이언 트 의 쿠키 는 존재 합 니 다.
이 쿠키 를 사용 하여 오래된 세 션 을 복원 할 수 있 습 니까?혹은 모든 세 션 데이터 가 클 라 이언 트 가 브 라 우 저 를 닫 을 때 서버 에서 삭 제 됩 니까?
나 는 이것 을 나의 첫 페이지 에 놓 았 다.
session_start(); $_SESSION['message'] = 'Hello'; echo $_SESSION['message']; // outputs hello
그리고 나 서 나 는 페이지 를 바 꾸 었 다.
$old_session = session_id(); session_id($old_session); session_start(); echo $_SESSION['message'];
그리고 나 서 나 는 브 라 우 저 를 닫 고 이 페이지 를 다시 엽 니 다.
다음 과 같은 오 류 를 받 습 니 다:
Warning: session_start() [function.session-start]: The session id is too long or contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,' in C:\xampp\htdocs\localhost\test.php on line 5 Notice: Undefined index: message in C:\xampp\htdocs\localhost\test.php on line 7
브 라 우 저 를 닫 은 후, 어떻게 이전 세 션 정 보 를 정확하게 검색 합 니까? 이것 이 가능 합 니까?
대답 하 다.
세 션 은 tin 에서 말 한 대로 실 행 됩 니 다.
- 클 라 이언 트 세 션 기간 에 존재 합 니 다.
브 라 우 저 를 닫 을 때 정의 에 따라 탐색 세 션 (예: 세 션 이 하나 있다) 이 종 료 됩 니 다.
쿠키 기반 세 션 은 쿠키 를 설정 해서 작 동 합 니 다.
이 쿠키 의 생명 주기 가 PHP 에서 0 으로 정의 되 어 있 습 니 다.
브 라 우 저 를 닫 을 때 쿠키 를 없 애 는 것 을 의미 합 니 다.
쿠키 가 소멸 되면 세 션 ID 는 어떠한 후속 서버 요청 에 도 보 내지 않 기 때문에 PHP 스 크 립 트 에서 사용 할 수 없습니다.
하지만 사용자 가 브 라 우 저 를 닫 는 순간 서버 에 있 는 세 션 데 이 터 는 사라 지지 않 습 니 다.
이 는 불가능 합 니 다.
클 라 이언 트 가 서버 가 이미 종료 되 었 음 을 알 리 지 않 기 때 문 입 니 다.
반면 서버 쪽 세 션 데 이 터 는 TL (생존 시간) 이 있 습 니 다.
기본 값 은 15 분 입 니 다.
시간 이 지나 면 세 션 쓰레기 수집 기 는 수시로 데 이 터 를 삭제 할 수 있 습 니 다.
이론 적 으로 는 상당히 오 랜 시간 이 걸 릴 수 있 지만, 실제로 바 쁜 서버 에 서 는 TTL 이 만 료 된 후 몇 분 안에 데이터 가 삭 제 될 것 입 니 다.
단, PHP 로 세 션 데 이 터 를 사용 할 수 없습니다.
세 션 ID 가 있 거나 쿠키 가 없 으 면 세 션 ID 가 없습니다.
제 말 처럼 사용자 가 브 라 우 저 를 닫 을 때 발생 합 니 다.
그래서 이 질문 에 대한 짧 은 답 은 PHP 회 복 량 이 어떻게 되 나 요?is: 너 못 해
'개발 스크랩 메모 > PHP' 카테고리의 다른 글
PHP 스 트림 미디어 파일 을 어떻게 사용 합 니까? (0) | 2020.11.22 |
---|---|
PHP 메 일이 발송 되 지 않 았 습 니 다. 어떻게 디 버 깅 하 시 겠 습 니까? (0) | 2020.11.22 |
PHP-문자열에서 <img> 태그 제거 (0) | 2020.11.22 |
PHP 유닛 을 사용 하여 배열 의 값 이 포함 되 는 지 시험 합 니 다. (0) | 2020.11.22 |
선택적 매개 변수가있는 PHP 함수 (0) | 2020.11.22 |