[php] 헤더가있는 이전 페이지로 돌아 가기 (“위치 :”); PHP에서

이 질문의 제목은 내 질문을 설명합니다. PHP 페이지 방문자를 이전 페이지로 리디렉션하려면 어떻게해야합니까?header( "Location: URL of previous page" );



답변

시험:

header('Location: ' . $_SERVER['HTTP_REFERER']);

이것은 보안 페이지 (HTTPS)에서 작동하지 않을 수 있으며 헤더가 하이재킹되어 사용자를 다른 목적지로 보낼 수 있기 때문에 전반적으로 매우 나쁜 생각입니다. 헤더는 브라우저에서 전송되지 않을 수도 있습니다.

이상적으로는 다음 중 하나를 원할 것입니다.

  • 반환 주소를 요청에 쿼리 변수로 추가합니다 (예 😕 back = / list).
  • 코드에 반환 페이지 정의 (즉, 모든 성공적인 양식 제출은 목록 페이지로 리디렉션 됨)
  • 사용자에게 다음으로 이동하려는 옵션을 제공합니다 (예 : 저장하고 편집을 계속하거나 저장 만).

답변

너무 간단합니다.

header("location:javascript://history.go(-1)");

나를 위해 잘 작동합니다.


답변

어떻게 든 그 위치를 저장해야합니다.

POST 양식이라고 말하고 현재 위치를 숨겨진 필드에 넣은 다음 위치에서 사용하십시오 header().


답변

약간의 추가 : exit;나머지 코드를로드하거나 실행하지 않으려는 경우 헤더 함수 뒤에 추가하는 것이 일반적이고 알려진 것입니다 .

header('Location: ' . $_SERVER['HTTP_REFERER']);
exit;


답변

Javascript로 시도하십시오.

 $previous = "javascript:history.go(-1)";

또는 PHP에서 시도해 볼 수 있습니다.

if(isset($_SERVER['HTTP_REFERER'])) {
    $previous = $_SERVER['HTTP_REFERER'];
}


답변

세션 변수에 이전 URL을 저장하는 것은 좋지 않습니다. 사용자가 여러 페이지를 마우스 오른쪽 버튼으로 클릭 한 다음 돌아와서 저장할 수 있기 때문입니다.

세션 변수의 이전 URL을 양식의 숨겨진 필드에 저장하지 않고 헤더 ( “위치 : 호출 페이지의 URL 저장”);


답변