In der Webentwicklung ist die Umleitung von Webseiten eine gängige Operation, z. B. die Umleitung zu einer persönlichen zentralen Seite nach dem Anmelden oder der Migration einer alten Seite zu einer neuen Adresse. PHP bietet eine einfache und direkte Möglichkeit, diese Funktion zu implementieren, nämlich mit der Funktion Header () , um HTTP -Header -Informationen zu senden und so den Browser zu benachrichtigen, zu einer neuen Seite zu springen.
Die Header () -Funktion von PHP kann zum Senden von RAW -HTTP -Nachrichten -Header -Informationen verwendet werden, und seine Syntax lautet wie folgt:
<span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$header</span></span><span>, </span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-variable">$replace</span></span><span> = </span><span><span class="hljs-literal">true</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$response_code</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>);
</span></span>
Bei Verwendung zur Umleitung sind die gemeinsamen Formen wie folgt:
<span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Location: https://www.example.com'</span></span><span>);
</span><span><span class="hljs-keyword">exit</span></span><span>;
</span></span>
Hier befindet sich der Ort ein spezieller HTTP -Header, der den Browser anweist, zu einer anderen URL zu springen. Der Beenden wird aufgerufen, um sicherzustellen, dass PHP den nachfolgenden Code nicht weiter ausführt und unerwartete Ausgabe oder logische Fehler verhindert.
<span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$login_success</span></span><span>) {
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Location: /dashboard.php'</span></span><span>);
</span><span><span class="hljs-keyword">exit</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Falscher Benutzername oder Passwort。"</span></span><span>;
}
</span></span>
<span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$_SERVER</span></span><span>[</span><span><span class="hljs-string">'REQUEST_METHOD'</span></span><span>] === </span><span><span class="hljs-string">'POST'</span></span><span>) {
</span><span><span class="hljs-comment">// Verarbeitungsformulare</span></span><span>
</span><span><span class="hljs-comment">// ...</span></span><span>
</span><span><span class="hljs-comment">// Umleiten Sie sich auf die Dankeseite um</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Location: /thank-you.php'</span></span><span>);
</span><span><span class="hljs-keyword">exit</span></span><span>;
}
</span></span>
Verwenden Sie nach der Übermittlung des Formulars Header () zum Springen, wodurch die wiederholte Einreichung von Daten effektiv verhindern kann, wenn die Seite aktualisiert wird:
<span><span><span class="hljs-comment">// Speichern Sie die Daten und springen Sie</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Location: /success.php'</span></span><span>);
</span><span><span class="hljs-keyword">exit</span></span><span>;
</span></span>
Der Header muss vor einem Ausgang <br> aufgerufen werden Sobald die Seite ausgegeben hat (z. B. Echo, HTML -Tags oder Leerzeichen), meldet Header () einen Fehler: "Die Headerinformationen können nicht ändern". Dieses Problem kann vermieden werden, indem der Ausgangspuffer von ob_start () eingeschaltet wird.
Es ist sicherer, absolute Pfade zu verwenden <br> Obwohl relative Pfade verwendet werden können, wie z . B. Ort: Dashboard.php , wird empfohlen, absolute Pfade oder vollständige URLs zu verwenden, um Pfadfehler zu vermeiden.
Verwenden Sie in Verbindung mit dem HTTP -Statuscode <br> Der HTTP -Statuscode kann beispielsweise über den dritten Parameter von Header () eingestellt werden:
<span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Location: /new-page.php'</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>, </span><span><span class="hljs-number">301</span></span><span>); </span><span><span class="hljs-comment">// Permanente Umleitung</span></span><span>
</span></span>
Der Statuscode bedeutet Folgendes:
301: permanente Umleitung
302: vorübergehende Umleitung (Standard)
303: Für Sprung nach der Einreichung von Formular empfohlen
Die Verwendung von Header ('Ort: ...') ist der direkteste und effektivste Weg, um die Webseitenumleitung in PHP zu erreichen. Durch das Beherrschen können Sie die Seitennavigation, die Statusübertragung und die Benutzererfahrungsoptimierung einfach verarbeiten. In den tatsächlichen Projekten kann eine Umleitungsstrategie, die eher den Webstandards entspricht, in Verbindung mit geeigneten Geschäftslogik- und HTTP -Statuscodes implementiert werden.