PHP-de çalt redirect
header funksiýasy arkaly amala aşyrylan redirect,
şol funksiýa çagyrylanda bolmaýar. Sebäbi PHP özi redirect
amala aşyrmok däl-de, diňe brauzere degişli HTTP sözbaşysyny iberýär.
Bu bolsa, redirect diňe PHP skripti ahyryna çenli ýerine ýetirilenden soň bolup geçer. Bu ýagdaý dürli goşmaça täsirleriň ýüze çykmagyna getirip biler.
Mysal üçin, aşakdaky kodda biz ýa redirect ýerine ýetirmek isleýäris, ýa-da bazadan sorag. Ýöne bazadan sorag, redirect üçin buýruk bolsa hem ýerine ýetiriler:
<?php
if ($_GET['test']) {
header('Location: test.php');
}
$query = "UPDATE users SET changed=1 WHERE id=1";
mysqli_query($link, $query); // redirect bolsada ýerine ýetiriler!
?>
Şuňa meňzeş meseleleriň öňüni almak üçin redirectden soň
hemme işi çalt gutarar we redirect derrew bolup geçer ýaly,
die funksiýasyny derrew çagyrmaly:
<?php
if ($_GET['test']) {
header('Location: test.php');
die();
}
$query = "UPDATE users SET changed=1 WHERE id=1";
mysqli_query($link, $query);
?>
Kodynyzda birnäçe goşmaça täsiri ýüze çykaryň.
Soňra ony die funksiýasyny ulanyp düzüň.