Zusammenfassung mehrerer Probleme, die bei der Verwendung von PHP-Header für Seitensprünge zu beachten sind
Autor:Eve Cole
Aktualisierungszeit:2009-06-05 16:25:10
Wenn Sie header("location:test.php") zum Springen in PHP verwenden, sollten Sie die folgenden Punkte beachten, um einige Probleme zu lösen, auf die Anfänger häufig stoßen.
1. Zwischen Standort und „:“ darf kein Leerzeichen stehen, da sonst ein Fehler auftritt.
2. Vor der Verwendung des Headers kann keine Ausgabe erfolgen.
3. Der PHP-Code nach dem Header wird ebenfalls ausgeführt.
Das Folgende ist ein Vergleich mit der Umleitung „response.redirect“ in asp:
Beispiel 1:
Response.redirect „../test.asp“
header("location:../test.php");
Der Unterschied zwischen den beiden:
Die Umleitungsfunktion von ASP kann funktionieren, nachdem die Header-Datei an den Client gesendet wurde.
wie
<html><head></head><body>
<%response.redirect "../test.asp"%>
</body></html>
Überprüfen Sie, ob der folgende Code in PHP einen Fehler meldet:
<html><head></head><body>
<?
header("location:../test.php");
?>
</body></html>
Dies ist der einzige Weg:
<?
header("location:../test.php");
?>
<html><head></head><body>...</body></html>
Das heißt, die Header-Funktion kann vorher keine Daten an den Client senden.
Beispiel 2:
in asp
<html><head></head><body>
<%
Response.redirect „../a.asp“
Response.redirect „../b.asp“
%>
</body></html>
Das Ergebnis ist eine Umleitung der a.asp-Datei.
Was ist mit PHP?
<?
header("location:../a.php");
header("location:../b.php");
?>
<html><head></head><body></body></html>
Wir haben festgestellt, dass es b.php umleitet.
Es stellt sich heraus, dass nach der Ausführung der Umleitung in ASP der nachfolgende Code nicht ausgeführt wird.
Nachdem PHP den Header ausgeführt hat, führt es weiterhin den folgenden Code aus.
In dieser Hinsicht ist die Header-Umleitung in PHP nicht so gut wie die Umleitung in ASP. Manchmal können wir den folgenden Code nach der Umleitung nicht ausführen:
Im Allgemeinen verwenden wir
Wenn(...)
Header("...");
anders
{
...
}
Aber wir können einfach die folgende Methode verwenden:
Wenn(...)
{ header("...");exit();}
Beachten Sie außerdem, dass es zu Problemen kommen kann, wenn Unicode (UTF-8) zur Kodierung verwendet wird und die Cache-Einstellungen angepasst werden müssen.
<[email=%@]%@LANGUAGE="VBSCRIPT[/email]" CODEPAGE="936"%>
<%if Request.ServerVariables("SERVER_NAME")="s.jb51.net" dann
Response.redirect „news/index.htm“
sonst%>
<%end if%>
<Skript>
var url = location.href;
if(url.indexOf('http://www.devdao.com/')!=-1)location.href='/index/index.htm';
if(url.indexOf('http://www.knowsky.com/')!=-1)location.href='/index1/index.htm';
if(url.indexOf('http://www.google.com/')!=-1)location.href='/cn/index.asp';
if(url.indexOf('http://www.baidu.com/')!=-1)location.href='/cn/index.asp';
</script>