⊗ppPmRdIns 405 of 447 menu

Sofortige Redirects in PHP

Ein Redirect, der mit der Funktion header durchgeführt wird, erfolgt nicht im Moment des Aufrufs dieser Funktion. Denn PHP selbst führt den Redirect nicht aus, sondern sendet nur den entsprechenden HTTP-Header an den Browser.

Das bedeutet, dass der Redirect erst dann stattfindet, wenn PHP das gesamte Skript bis zum Ende ausgeführt hat. Dadurch können verschiedene unerwünschte Effekte auftreten.

Beispielsweise möchten wir im folgenden Code entweder einen Redirect durchführen oder eine Datenbankabfrage. Aber die Datenbankabfrage wird auch dann ausgeführt, wenn der Redirect-Befehl gegeben wurde:

<?php if ($_GET['test']) { header('Location: test.php'); } $query = "UPDATE users SET changed=1 WHERE id=1"; mysqli_query($link, $query); // wird auch beim Redirect ausgeführt! ?>

Um solche Probleme zu vermeiden, muss unmittelbar nach dem Redirect die Funktion die aufgerufen werden, die die Ausführung des Skripts sofort beendet und der Redirect erfolgt sofort:

<?php if ($_GET['test']) { header('Location: test.php'); die(); } $query = "UPDATE users SET changed=1 WHERE id=1"; mysqli_query($link, $query); ?>

Reproduzieren Sie einen unerwünschten Effekt in Ihrem Code. Korrigieren Sie ihn anschließend mit der Funktion die.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen