⊗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हिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել