⊗ppPmRdIns 405 of 447 menu

Øjeblikkelig omdirigering i PHP

En omdirigering udført med funktionen header sker ikke i det øjeblik denne funktion kaldes. PHP udfører nemlig ikke selv omdirigeringen, men sender kun den tilsvarende HTTP-header til browseren.

Det betyder, at omdirigeringen først vil finde sted når PHP har kørt hele scriptet færdigt. På grund af dette kan der opstå forskellige uønskede effekter.

Som et eksempel: i følgende kode ønsker vi at udføre enten en omdirigering eller en databaseforespørgsel. Men databaseforespørgslen vil blive udført, selvom der var en kommando til omdirigering:

<?php if ($_GET['test']) { header('Location: test.php'); } $query = "UPDATE users SET changed=1 WHERE id=1"; mysqli_query($link, $query); // vil udføres selv ved omdirigering! ?>

For at undgå sådanne problemer skal man umiddelbart efter omdirigeringen kalde funktionen die, som øjeblikkeligt afslutter scriptets udførelse, og omdirigeringen vil ske med det samme:

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

Genskab en uønsket effekt i din kode. Ret den derefter med hjælp fra funktionen die.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικά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
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis