⊗ppPmRdIns 405 of 447 menu

Okamžité presmerovanie v PHP

Presmerovanie vykonané pomocou funkcie header neprebehne v okamihu volania tejto funkcie. Lebo PHP samo nevykonáva presmerovanie, ale iba odosiela príslušnú HTTP hlavičku do prehliadača.

To znamená, že presmerovanie prebehne až vtedy, keď PHP vykoná celý skript až do konca. Kvôli tomu môžu nastať rôzne parazitné efekty.

Napríklad, v nasledujúcom kóde chceme vykonať buď presmerovanie, alebo dopyt do databázy. Ale dopyt do databázy sa vykoná aj keď bola zadaná príkaz na presmerovanie:

<?php if ($_GET['test']) { header('Location: test.php'); } $query = "UPDATE users SET changed=1 WHERE id=1"; mysqli_query($link, $query); // vykoná sa aj pri presmerovaní! ?>

Na vyhnutie sa podobným problémom je potrebné hneď po presmerovaní zavolať funkciu die, ktorá okamžite ukončí vykonávanie skriptu a presmerovanie prebehne okamžite:

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

Reprodukujte nejaký parazitný efekt vo vašom kóde. Potom ho opravte pomocou funkcie die.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť