2014년 11월 25일 화요일

PHP 페이지 이동(전환) 방법

웹 페이지 개발을 하다 보면 페이지 이동을 해야 하는 경우가 있다.
예를 들면 로그인 페이지 같은 것으로 세션이 생성되어 있지 않으면 강제로 로그인 페이지로 이동 시키고, 로그인 하게 되면 메인 페이지로 이동 시킨다던지 하는 기능.

PHP 역시 웹 개발 언어인지라 역시 클라이언트 사이드에서 이동 시키는 방법과 서버 사이트에서 이동시키는 기능 두가지 모두 지원한다.

클라이언트 사이드에는 크게 2가지 메타 태그를 이용한 방법과 자바 스크립트를 이용한 방법이 있다.

- 메타 태그

<?
echo "<meta http-equiv='refresh' content='0; url=target_url'>";
?>


- 자바 스크립트


<? 
echo "<script> 
document.location.href='target_url'; 
</script>"; 
?>

혹은


<?
echo "<script>
window.location.replace('target_url');
</script>";
?> 


를 쓰면 되며, 이건 어느 웹 개발언어를 쓰던 마찬가지다.
어차피 html 를 이용한 것이니까.

흔이

<?
 if (check) {
    .... Process ....
 } else {
?>
<script>
    document.location.href='target_url';
</script>
<?
 }
?>

이렇게 많이 쓰인다.


서버 사이드에서는 


<? 
header("Location: target_url"); 
?> 


를 이용한다.

단, header 를 사용할 때는 사용하기 이전에 다른 Text 가 출력되지 않은 상태라야 한다.
즉, 클라이언트 단에 아무런 문자가 출력되지 않은 상태라야 사용 가능하며, 서버 사이드의 php 구문은 상관 없다. (물론 echo("...") 같은걸로 문자열을 출력했을 경우는 안된다.)