⊗ppPmRdIns 405 of 447 menu

Redirection instantanée en PHP

La redirection, effectuée à l'aide de la fonction header, ne se produit pas au moment de l'appel de cette fonction. En effet, PHP lui-même n'effectue pas la redirection, mais envoie seulement l'en-tête HTTP correspondant au navigateur.

Cela signifie que la redirection se produira seulement lorsque PHP aura exécuté le script entier jusqu'à la fin. À cause de cela, divers effets parasites peuvent survenir.

Par exemple, dans le code suivant, nous voulons effectuer soit une redirection, soit une requête à la base de données. Mais la requête à la base de données s'exécutera même si il y avait une commande de redirection :

<?php if ($_GET['test']) { header('Location: test.php'); } $query = "UPDATE users SET changed=1 WHERE id=1"; mysqli_query($link, $query); // s'exécutera même lors de la redirection ! ?>

Pour éviter de tels problèmes, il faut immédiatement après la redirection appeler la fonction die, qui mettra fin instantanément à l'exécution du script et la redirection se produira immédiatement :

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

Reproduisez un effet parasite quelconque dans votre code. Puis corrigez-le à l'aide de la fonction die.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser