23. 다른 페이지로 이동하기 -php-
PHP에서 조건에 따라 다른 페이지로 이동하는 방법.
1. 자바스크립트를 이용하는 방법
<? echo("<script>location.href='경로/파일명';</script>"); ?>
2. 자바스크립트를 이용하는 방법
<? echo("<script>location.replace('경로/파일명');</script>"); ?>
3. Header() 함수를 이용하는 방법(생소하네)
header()함수를 사용할 때는 사용하기 이전에 다른 Text 가 출력되지 않은 상태라야 한다. (뭔 말이야..)
즉, 클라이언트 상에 아무런 문자가 출력되지 않은 상태라야 사용 가능하며, 서버 사이드의 php 구문은 상관없다. (물론 echo("...") 같은 걸로 문자열을 출력했을 경우는 안 된다.)
<? Header("Location:경로/파일명"); ?>
4. 메타태그를 이용하는 방법
<? echo("<meta http-equiv='refresh' content='시간지정' url='경로/파일명'>"); ?>
위의 4가지 방법 중 권장하고 싶은 것은 2번.
1번 자바스크립트의 경우 href는 이전에 이미 접속했던 사이트일 경우 temp에 저장된 문서를 보여 줄 가능성이 있다.
3번 PHP Header()의 경우에도 캐쉬가 엉켜버린다. 캐쉬가 엉킨다는 것은 예를 들어 게시판에서 글을 적은 후 자동으로 목록으로 돌아가게 했는데 좀 전에 쓴 글이 리스트에 안 보이는 경우이다. 물론 refresh하면 나타난다.
4번 메타태그의 경우 mtstyle.net 에서 www.mtstyle.net로 이동할 경우 무한 refresh가 걸린다.
글이 있을 때와 없을 때 이동하는 페이지를 다르게.
$sql = "select * from math_class where
cl_id = '$_GET[cl_id]'"; //get방식으로 받은 cl_id가 DB에 있는지를 찾기 위해 사용.
$result = sql_query($sql);//sql_query()는 사용자 함수이다.
$data = mysql_fetch_array($result);
if(!$data[cl_id]){
echo("<script>location.replace('./class_write.php?cl_id=$_GET[cl_id]');</script>");
} else {
echo("<script>location.replace('./class_modify.php?cl_id=$_GET[cl_id]');</script>");
}
?>
<input> 버튼으로 다른 페이지 가기
<p>
<a href="javascript:OpenLatexEditor('testbox','latex','');">
Launch CodeCogs Equation Editor</a>
</p>
이걸 버튼으로 바꾸려고 한다.
코드에디터를 부르는 input에서
<input type="button" value="CodeCogs Equation Editor" onclick="location.href=OpenLatexEditor('testbox','latex',''); return false;">
이건 submit이 된다.
<input type="button" value="CodeCogs Equation Editor" onclick="href=OpenLatexEditor('testbox','latex',''); return false;">
이건 submit이 안 된다.
'COMPUTER > php' 카테고리의 다른 글
25. 라디오 버튼의 체크 정보 가져오기 -php- (0) | 2017.04.27 |
---|---|
24. mathjax 사용하기 -php (0) | 2017.04.27 |
22. 트리메뉴를 사용해 보자. (3) css. 우선 순위 문제 -php (0) | 2017.04.13 |
21. 트리메뉴를 사용해 보자. (2) api.html -php (0) | 2017.04.13 |
20. 트리메뉴를 사용해 보자. (1) example.html -php (0) | 2017.04.13 |