PHP에서 전에 현재 페이지로 오기 전에 페이지의 주소값을 가져올 때 $_SERVER['HTTP_REFERER']
을 사용한다.
(전에 $_SERVER
관련 글을 포스팅한 적도 있다 : 확인)
하지만, 웹페이지 프로그래밍할 때 페이지를 이동하는 방법에는 여러가지가 있고 $_SERVER['HTTP_REFERER']
를 사용했지만 전에 페이지의 주소값을 가져오지 못하는 경우가 있다.
1) 주소창에 직접 주소를 입력해서 방문하는 경우 : HTTP_REFERER의 값 가져오지 못한다
2) '즐겨찾기'를 이용해서 방문(IE에서 해당)하는 경우 : HTTP_REFERER
값 가져오지 못한다
3) 링크를 통해서 방문.(a태그) : HTTP_REFERER
값 가져온다
4) 자바스크립트 location.href
를 통해 방문 : 브라우저에 따라 HTTP_REFERER 값 가져오거나, 가져오지 못한다
위에서 말한바와 같이 자바스크립트 location.href
를 통해 방문한 경우
IE는 값을 가져오지 못하지만
Chrome, Firefox경우에는 가져올수 있다.
주소창에 직접 주소 입력한 것과 즐겨찾기를 이용해 방문한 경우는 어쩔수 없다 쳐도,
자바스크립트 location.href
를 사용하는 경우가 꾀 있는데 a 태그로 처리할 수 없지만 전에 페이지의 주소값을 가져오고 싶은 경우가 생긴다.
이럴 경우 해결방법!
header나, meta 태그를 사용하여 페이지를 이동한다.
참고 사이트 : http://www.somacon.com/p145.php
- header
// Permanent redirection
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.somacon.com/");
exit();
- meta
<meta http-equiv="refresh" content="0;url=http://www.somacon.com/">
나같은 경우는 그냥 movepage함수를 만들어
세개가 모두 실행되도록 하여서 어느 경우더라도 REFERER 값을 받을 수 있도록 수정하였다.