⊗ppPmRdIns 405 of 447 menu

Onmiddellijke redirect in PHP

Een redirect, uitgevoerd met de functie header, vindt niet plaats op het moment van aanroepen van deze functie. PHP voert zelf namelijk geen redirect uit, maar stuurt alleen het bijbehorende HTTP-header naar de browser.

Dit betekent dat de redirect alleen zal plaatsvinden wanneer PHP het hele script helemaal heeft uitgevoerd. Hierdoor kunnen allerlei ongewenste effecten optreden.

Als voorbeeld: in de volgende code willen we ofwel een redirect uitvoeren, ofwel een query naar de database. Maar de databasequery wordt uitgevoerd, zelfs als er een opdracht was voor een redirect:

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

Om dergelijke problemen te voorkomen, moet je direct na de redirect de functie die aanroepen, die onmiddellijk de uitvoering van het script beëindigt en de redirect zal direct plaatsvinden:

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

Reproduceer een ongewenst effect in je code. Corrigeer het vervolgens met behulp van de functie die.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren