이 질문의 제목은 내 질문을 설명합니다. 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 저장”);