⊗ppPmRdIns 405 of 447 menu

Momentinis redirect PHP

Redirect, atliktas naudojant funkciją header neįvyksta tuo momentu, kai iškviečiama ši funkcija. Juk PHP pats neatlieka redirect, o tik siunčia atitinkamą HTTP antraštę naršyklei.

Tai reiškia, kad redirect įvyks tik tada, kai PHP įvykdys visą scenarijų iki galo. Dėl to gali atsirasti įvairių parazitinių efektų.

Pavyzdžiui, toliau pateiktame kode mes norime atlikti arba redirect, arba užklausą į duomenų bazę. Bet užklausa į duomenų bazę bus vykdyta net jei buvo išduota redirect komanda:

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

Kad išvengtumėte tokių problemų, reikia iškart po redirect iškviesti funkciją die, kuri momentiškai nutrauks scenarijaus vykdymą ir redirect įvyks tuoj pat:

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

Sukurkite kokį nors parazitinį efektą savo kode. Tada ištaisykite jį naudodami funkciją die.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti