header("location:test.php")를 사용하여 PHP로 점프할 때 다음 사항에 주의하세요. 초보자가 자주 겪는 문제를 해결하는 데 도움이 됩니다
1. 위치 사이에는 공백이 있어서는 안 됩니다. 및 ":" 공백이 있으면 오류가 발생합니다.
2. 헤더를 사용하기 전에는 출력이 불가능합니다.
3. 헤더 뒤의 PHP 코드도 실행됩니다.
다음은 asp의 리디렉션 response.redirect와의 비교입니다.
예 1:
response.redirect"../test.asp" header("location:../test.php");
둘의 차이점:
asp의 리디렉션 기능은 헤더 파일을 고객에게 보낸 후 작동할 수 있습니다.
예를 들어
<html> <head> </head> <body> <%response.redirect"../test.asp"%> </body> </html>
다음 예제 코드를 PHP에서 확인하면 오류가 보고됩니다.
<html> <head> </head> <body> <?php header("location:../test.php"); ?> </body> </html>
유일한 방법은
<?php header("location:../test.php"); ?> <html> <head> </head> <body>... </body> </html>
즉, 헤더 기능 이전에는 고객에게 데이터를 보낼 수 없습니다. .
예 2:
asp에서
<html> <head> </head> <body> <% response.redirect"../a.asp" response.redirect"../b.asp" %> </body> </html>
의 결과가 무거움 a.asp 파일을 직접 지정합니다.
php는 어떻습니까?
<?php header("location:../a.php"); header("location:../b.php"); ?> <html> <head> </head> <body> </body> </html>
b.php를 리디렉션하는 것으로 나타났습니다.
이후에는 ASP에서 리디렉션을 실행하면 다음 코드는 실행되지 않습니다.
그리고 헤더를 실행한 후에는 다음 코드를 실행합니다.
이런 점에서 PHP의 헤더 리디렉션은 ASP의 리디렉션만큼 좋지 않습니다. 리디렉션 후 다음 코드를 실행할 수 없습니다:
일반적으로
if(...) header("..."); else { ... }
를 사용하지만 간단히 다음 방법을 사용할 수도 있습니다.
if(...) {header("...");exit();}
또한 유니코드(UTF-8) 인코딩을 사용하는 경우에도 문제가 발생하므로 주의해야 합니다. 캐시 설정을 조정하세요.
위 내용은 php 헤더('location: $url') 페이지 점프 주의사항 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!