도달 할 수없는 if-and-else 문에서 헤더 함수를 실행할 수있는 이상한 문제가 있습니다. 예를 들어if-else-else 조건이 충족되지 않았지만 헤더가 여전히 실행 됨
//www.example.com/search/title/harry+potter
$path = explode("/", trim(trim($_SERVER['REQUEST_URI']),"/"));
if(!$path){
//if array is empty go back to index
header("Location: /");
}
else if(!$path[1] || !$path[2]){
//if neither index 1 or 2 are set go back to index
header("Location: /");
}
이 코드는 if-else 문이 모두 충족되지 않았기 때문에 사용자를 리디렉션하지 않아야하지만 어떤 이유로 인해 두 번째 else-if 문에서 사용자를 리디렉션하는 것처럼 보입니다.
header()
함수를 echo "test"
으로 바꾸면 아무 일도 일어나지 않습니다.
나는 당황 스럽다. 무엇이 문제인가?
당신이 무엇을 볼 않는'header'가'위해서 var_dump ($ 경로)'으로 호출? – Barmar
@Barmar nothing happens –
아무 것도 보이지 않으면 'else if'에 들어 가지 않습니다. 리디렉션이 다른 곳에서 일어나고 있습니다. – Barmar