Onmiddellike herleiding in PHP
'n Herleiding wat uitgevoer word met die funksie
header gebeur nie op die oomblik
van die roep van hierdie funksie nie. Aangesien PHP self
nie die herleiding uitvoer nie, maar slegs die
ooreenstemmende HTTP-kopstuur na die blaaier stuur.
Dit beteken dat die herleiding slegs sal plaasvind wanneer PHP die hele script uitgevoer het tot die einde. As gevolg hiervan kan verskeie parasitiese effekte voorkom.
Byvoorbeeld, in die volgende kode wil ons of 'n herleiding uitvoer, of 'n navraag na die databasis. Maar die databasisnavraag sal uitgevoer word selfs al was daar 'n opdrag vir herleiding:
<?php
if ($_GET['test']) {
header('Location: test.php');
}
$query = "UPDATE users SET changed=1 WHERE id=1";
mysqli_query($link, $query); // sal uitgevoer word selfs met herleiding!
?>
Om sulke probleme te vermy, is dit nodig om
onmiddellik na die herleiding die funksie
die te roep, wat die uitvoering van die
script onmiddellik sal beëindig en die herleiding sal
dadelik plaasvind:
<?php
if ($_GET['test']) {
header('Location: test.php');
die();
}
$query = "UPDATE users SET changed=1 WHERE id=1";
mysqli_query($link, $query);
?>
Herskep een of ander parasitiese
effek in jou kode. Stel dit dan reg
met behulp van die funksie die.