>  기사  >  백엔드 개발  >  PHP에서 제출 후 양식이 지워지는 것을 방지하는 방법

PHP에서 제출 후 양식이 지워지는 것을 방지하는 방법

藏色散人
藏色散人원래의
2020-11-17 09:57:492529검색

제출 후 PHP 양식을 지우지 않는 구현 방법: 먼저 해당 코드 파일을 연 다음 "session_start()" 뒤 문자 출력 앞에 "header("Cache-control: private");" 문을 작성합니다.

PHP에서 제출 후 양식이 지워지는 것을 방지하는 방법

추천: "PHP 비디오 튜토리얼"

PHP 양식을 제출한 후 반환되고 양식 내용이 지워지지 않은 경우 해결 방법

제출하기 전에 많은 정보를 입력하는 경우가 많습니다. 등록 시 등록 때로는 특정 정보 항목이 정확하지 않아 이전에 입력한 내용이 모두 손실되어 다시 입력한 정보가 손실되어 사용자 경험에 영향을 미칠 수 있습니다. 그렇다면 이 문제를 어떻게 해결할 수 있을까요?

해결책은 session_start() 뒤 문자 출력 앞에 헤더("Cache-control: private")를 작성하는 것입니다.

웹 페이지의 캐시는 HTTP 메시지 헤더의 "Cache-control"에 의해 제어됩니다. is common 값에는 private, no-cache, max-age, must-revalidate 등이 포함됩니다. 기본값은 private입니다. 해당 기능은 다양한 재탐색 방법에 따라 다음 상황으로 나뉩니다.

(1) 새 창 열기

값은 비공개, 캐시 없음, 재검증 필요, 새 창이 열릴 때 서버를 다시 방문합니다. 열립니다.

그리고 max-age 값이 지정되면 이 값 내에서 서버에 다시 액세스할 수 없습니다. 예:

Cache-control: max-age=5(이 웹페이지에 액세스한 후 5초 이내에 다시 액세스한다는 의미) 서버로 이동하지 않습니다)

(2) 주소 표시줄에서 Enter를 누르세요

값이 비공개이거나 재검증이 필요한 경우 서버에 처음에만 접속할 수 있으며, 다시 접속할 수 없습니다.

값은 캐시 없음이므로 매번 액세스됩니다.

값이 max-age인 경우 만료되기 전에는 다시 액세스할 수 없습니다.

(3) 뒤로 버튼을 누르세요.

값이 private, must-revalidate, max-age이면 다시 액세스되지 않습니다.

값이 no-cache이면 다시 액세스됩니다.

(4) 새로고침 버튼을 누르세요

값이 무엇이든 반복해서 접속하게 됩니다

캐시 제어 값이 "no-cache"일 때 이 페이지에 접속해도 페이지 백업이 남지 않습니다. 인터넷 임시 기사 폴더.

또한 "만료" 값을 지정하면 캐시도 영향을 받습니다. 예를 들어 Expires 값을 이미 경과한 시간으로 지정한 경우 이 웹 사이트에 접속할 때 주소 표시줄에서 Enter를 반복적으로 누르면 다음과 같이 매번 접속이 반복됩니다. Expires: Fri, 31 Dec 1999 16:00 :00 GMT

예: IE에서 페이지 캐싱 비활성화

http 응답 메시지 헤더 설정:

CacheControl = no-cache
Pragma=no-cache
Expires = -1

Expires는 서버의 웹 페이지가 자주 변경되는 경우 즉시 만료를 나타내도록 -1로 설정합니다. 웹페이지가 매일 오전 1시에 업데이트된다면 만료일을 다음 날 오전 1시로 설정할 수 있습니다.

HTTP1.1 서버가 CacheControl = no-cache를 지정하면 브라우저는 웹 페이지를 캐시하지 않습니다.

이전 HTTP 1.0 서버는 Cache-Control 헤더를 사용할 수 없습니다.

따라서 HTTP 1.0 서버와의 역호환을 위해 IE는 Pragma:no-cache 헤더를 사용하여 HTTP에 대한 특별 지원을 제공합니다.

클라이언트가 보안 연결(https://)을 통해 서버와 통신하고 서버가 응답으로 Pragma:no-cache 헤더를 반환하는 경우

Internet Explorer는 응답을 캐시하지 않습니다. 참고: Pragma:no-cache는 보안 연결에서 사용될 때만 캐싱을 방지합니다. 비보안 페이지에서 사용되는 경우 처리는 Expires:-1과 동일하지만 페이지는 즉시 만료된 것으로 표시됩니다.

Cache-Control 메시지 헤더 필드 설명

Cache-Control은 요청과 응답이 뒤따르는 캐싱 메커니즘을 지정합니다. 요청 메시지나 응답 메시지에

Cache-Control을 설정해도 다른 메시지 처리 프로세스의 캐시 처리 프로세스가 수정되지는 않습니다. 요청 중 캐시 지침에는 no-cache, no-store, max-age, max-stale, min-fresh, only-if-cached가 포함되며, 응답 메시지의 지침에는 public, private, no-cache, no가 포함됩니다. -저장, 변환 없음, 재검증 필수, 프록시 재검증, 최대 수명. 각 메시지에 포함된 지침의 의미는 다음과 같습니다.

Public은 응답이 모든 캐시 영역에서 캐시될 수 있음을 나타냅니다.

개인은 단일 사용자에 대한 응답 메시지의 전체 또는 일부를 공유 캐시에서 처리할 수 없음을 나타냅니다. 이를 통해 서버는 다른 사용자의 요청에 유효하지 않은 사용자의 부분 응답만 설명할 수 있습니다.

no-cache는 요청 또는 응답 메시지를 캐시할 수 없음을 나타냅니다.

no-store는 중요한 정보가 실수로 공개되는 것을 방지하는 데 사용됩니다. 요청 메시지에 이를 보내면 요청 메시지와 응답 메시지 모두 캐싱을 사용하게 됩니다.

max-age는 클라이언트가 지정된 시간(초)보다 크지 않은 수명으로 응답을 받을 수 있음을 나타냅니다.

min-fresh는 클라이언트가 현재 시간에 지정된 시간을 더한 것보다 짧은 응답 시간으로 응답을 받을 수 있음을 나타냅니다.

max-stale은 클라이언트가 제한 시간 이후에 응답 메시지를 받을 수 있음을 나타냅니다. max-stale 메시지 값을 지정하면 클라이언트는 지정된 제한 시간 값을 초과하는 응답 메시지를 수신할 수 있습니다.

위 내용은 PHP에서 제출 후 양식이 지워지는 것을 방지하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.