⊗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šuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј