PHP 언어를 사용해 이전 페이지로 돌아가기 위한 방법을 알아보려고합니다. 어떻게하면 PHP에서 이전 페이지로 돌아갈 수 있을까요?

우선 왜 이전페이지로 돌아가기 위한 방법이 필요할까요? 그 이유는 다양할 수 있습니다. 대표적인 경우를 예로 들어보면 아래와 같을 것입니다.
  • 로그인 또는 게시글 작성시 서버 전송을 위해 페이지가 전환된 경우 다시 원래 페이지로 이동시킬 경우
  • 서버와 전송하기 위한 페이지로 이동시킨 경우

그 외에도 다양한 이유로 이전 페이지 이동을 원할 수 있습니다. 그렇다면 어떻게 이동할 수 있을까요? 가장 간단한 방법은 역시 자바스크립트의 location 객체를 사용하는 방법입니다. 하지만 301 방법은 서버단에서 가능하므로 만약 php라면 다른 방법이 필요합니다.

php는 이전 페이지의 주소 url을 다음의 환경 변수에 저장하고 있으며 이를 사용해 다시 원래 페이지로 이동시킬 수 있습니다. 이때 사용하는 전역변수는 아래와 같습니다.

$_SERVER["HTTP_REFERER"]

좀 더 자세히 알아보기 위하여 예제와 함께 알아보겠습니다. 만약 원래 있던 board.php에서 일시적으로 로그인 처리를 위해 login-check.php페이지로 이동하였으나 다시 원래 있던 페이지로 돌아가려면 어떻게 해야할까요? 아래 예제를 봐주세요.


! 이전페이지 이동, $_SERVER["HTTP_REFERER"] 예제소스 보기
아래 예제를 봐주세요.
<?php
   $prevPage = $_SERVER["HTTP_REFERER"];
   // prevPage 변수에 이전 페이지 변수를 저장함
   // 아래는 로그인시 필요한 코드

   header("location:".$prevPage);
   // 로그인 처리를 마치고 원래 페이지로 이동시킴
?>

위 코드는 원래 있던 페이지 board.php의 정보를 다음의 환경변수가 가지고 있으므로 이를 변수에 저장해두었다가 모든 작업을 마친 후 다시 원래 있던 페이지로 돌아가기 위한 간단한 예제입니다.

앞에도 언급했지만 또 다른 방법으로는 자바스크립트의 history 객체를 사용할 수도 있습니다. 이를 사용할 경우 아래와 같습니다. 이 방법도 알아두면 좋으므로 참고하시기 바랍니다.

# 자바스크립트를 사용한 이전 페이지 이동방법

301 방법도 알아봤으니 302 리다이렉트 방법도 아래에 간단하게 알아보겠습니다.
<script>
   history.go(-1); // -2, -3 등의 숫자로 이전 페이지 이동가능
</script>

위 방법은 302 리다이렉트 방법으로 301 방법이 꼭 필요한 경우는 위 방법이 아닌 서버 페이지 이동이 필요합니다.
code snippet widget