포워드에 따라 다른 페이지로 자동연결되는 index.php
본문
포워드에 따라 다른 페이지로 자동연결되는 index.php를 만드려는데요..
페이지가 계속 로딩중만되는데 어디가 문제인걸까요?
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="http://localhost/style.css">
</head>
<?php
//http://test.kr/index.php?forward=A
if ($forward != "A")
//echo("<script>location.replace('./A.html');</script>");
echo("<meta http-equiv='refresh' content='0'; url='./A.html'>");
elseif ($forward != "B")
echo("<script>location.replace('./B.html');</script>");
elseif ($forward != "C")
echo("<script>location.replace('./C.html');</script>");
elseif ($forward != "D")
echo("<script>location.replace('./D/D.html');</script>");
end;
?>
답변 5
첫번째 if 문이 항상 참(TRUE) 이 되기 때문에
echo("<meta http-equiv='refresh' content='0'; url='./A.html'>");
계속 반복 되는 것으로 보입니다.
!= 은 아닌경우 모두를 포함하기 때문에 범위가 지정된 "A"를 제외한 모두가 됩니다.
== 으로 변경하시는게 좋을거 같습니다.
!-->
우선 if 문이 이상하네요..
forward=A 라면..
4개의 if 문에 모두 해당되고, 젤 위에 if ($forward != "A") 문을 먼저 실행합니다.
즉, ./A.html 파일로 이동하겠네요.
./A.html 파일에 위에 구문이 동일하게 들어가있다면 무한 반복을 하구요.
그렇지 않다면, 이상없이 이동할 겁니다.
구문을 한번 점검해보세요..
<meta http-equiv='refresh' content='0;url=./A.html'>
일단 if 문법도 이상하네요
":" 이 없는데 endif 아닌 end 를 쓰는것도 이상하고
$forwardUrl = "";
if ($forward != "A") {
$forwardUrl = "A.html";
} elseif ($forward != "B") {
$forwardUrl = "B.html";
} ...
echo("console.log('".forwardUrl."');</script>");
이렇게 해서 먼저 console 로그 부터 확인한뒤에 고치든지 해보세요
!-->$forward 는 언제 값이 존재하나요?
처음의 if문 전에 찍어보세요
자신이 자신을 재귀호출하는 지점이 있을꺼에요. 잘 살펴보세요.
저도 많이 해봤어요.
답변을 작성하시기 전에 로그인 해주세요.