포워드에 따라 다른 페이지로 자동연결되는 index.php

2020-01-09 (목) 02:18:41 2,293

포워드에 따라 다른 페이지로 자동연결되는 index.php를 만드려는데요..

페이지가 계속 로딩중만되는데 어디가 문제인걸까요?

Copy
<!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개 / 댓글 2개

2020-01-09 (목) 10:59:38

첫번째 if 문이 항상 참(TRUE) 이 되기 때문에

Copy
echo("<meta http-equiv='refresh' content='0'; url='./A.html'>");

계속 반복 되는 것으로 보입니다.

!= 은 아닌경우 모두를 포함하기 때문에 범위가 지정된 "A"를 제외한 모두가 됩니다.

== 으로 변경하시는게 좋을거 같습니다.

자신이 자신을 재귀호출하는 지점이 있을꺼에요. 잘 살펴보세요.

저도 많이 해봤어요.

$forward 는 언제 값이 존재하나요?

처음의 if문 전에 찍어보세요

2020-01-09 (목) 08:38:19

일단 if 문법도 이상하네요

":" 이 없는데 endif 아닌 end 를 쓰는것도 이상하고 

Copy
$forwardUrl = "";


if ($forward != "A") {
   $forwardUrl = "A.html";
} elseif ($forward != "B") {
   $forwardUrl = "B.html";
} ...
echo("console.log('".forwardUrl."');</script>");

이렇게 해서 먼저 console 로그 부터 확인한뒤에 고치든지 해보세요 

답변에 대한 댓글 2개

한줄짜리 if문은 구지 { } 를 쓰지 않아도 됩니다.
설마 제가 몰라서 그렇게 썼다고 생각하시는건 아니시죠? ^^

우선 if 문이 이상하네요..

forward=A 라면..

4개의 if 문에 모두 해당되고, 젤 위에 if ($forward != "A") 문을 먼저 실행합니다.

즉, ./A.html 파일로 이동하겠네요.

./A.html 파일에 위에 구문이 동일하게 들어가있다면 무한 반복을 하구요.

그렇지 않다면, 이상없이 이동할 겁니다.

구문을 한번 점검해보세요..

<meta http-equiv='refresh' content='0;url=./A.html'>

답변을 작성하려면 로그인이 필요합니다.