PHP에서 중복된 Session Set-Cookie 헤더를 출력하는 문제를 해결하는 방법은 무엇입니까?
오늘 이전에 발견한 적이 없는 오래된 버그를 발견했습니다. 프런트 엔드 응답은 두 개의 중복된 Set-Cookie 헤더를 받았습니다.
오랫동안 의아해했고, 오랜 시간의 문제 해결 끝에 결국 session_start() 함수에 대한 반복적인 호출로 인한 문제라는 것을 확인했습니다.
session_start() 함수가 호출될 때마다 Set-Cookie 헤더가 출력됩니다.
해결책:
session_start(); session_abort(); header_remove('Set-Cookie'); // 移除 Set-Cookie 头
확장:
session_start() 후에 해당 세션 파일이 잠기고 현재 스크립트가 끝날 때까지 잠금이 해제되지 않습니다.
잠금 기간 동안 프로세스가 동일한 세션 ID에 액세스하면 파일 잠금이 해제될 때까지 session_start()가 시작되지 않습니다.
session_start(); //starts the session,独占对应session id的文件 $_SESSION['user']="Me"; 将变量写入对应的session 文件 session_write_close(); // close write capability ,关闭对文件 的 写独占 echo $_SESSION['user']; // you can still access it ,依然可以对文件进行 写操作
session.cookie_lifetime 기본값은 0입니다. 이는 브라우저가 닫힐 때 쿠키가 유효하지 않음을 의미합니다.
php.ini에서 cookie_lifetime을 구성하는 것 외에도 session_set_cookie_params 함수를 통해 설정할 수도 있습니다. gc_maxlifetime 기본값은 1440초입니다. 즉, 사용자의 두 요청 사이의 시간 간격이 1440초를 초과하면
서버측 세션 파일은 PHP에서 가비지로 처리됩니다. gc_probability/gc_divisor가 1이면 세션이 종료됩니다.
세션 쿠키 설정 및 세션 파일은 86400초(1일) 후에 만료됩니다.
session.cookie_lifetime=86400 session.gc_maxlifetime=86400 session.gc_probability=1 session.gc_divisor=1
권장 학습: "
PHP 비디오 튜토리얼위 내용은 오래된 PHP 버그: 중복된 Set-Cookie 헤더가 수신되었나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!