⊗ppPmRdIns 405 of 447 menu

Истанчани редирект у PHP-у

Редирект, извршен помоћу функције header не дешава се у моменту позивања те функције. Наиме, сам PHP не извршава редирект, већ само шаље одговарајући HTTP заглавље у браузер.

То значи да ће се редирект десити тек када PHP изврши цео скрипт до краја. Због тога могу да се појаве разни паразитски ефекти.

На пример, у следећем коду желимо да извршимо или редирект, или упит ка бази. Али упит ка бази ће се извршити чак и ако је дошло до команде за редирект:

<?php if ($_GET['test']) { header('Location: test.php'); } $query = "UPDATE users SET changed=1 WHERE id=1"; mysqli_query($link, $query); // извршиће се чак и при редиректу! ?>

Да би се избегли овакви проблеми потребно је одмах након редиректа позвати функцију die, која ће истанчано прекинути извршавање скрипта и редирект ће се десити одмах:

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

Репродукујте неки паразитски ефекат у вашем коду. Затим га исправите помоћу функције die.

Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј