⊗ppPmRdIns 405 of 447 menu

Takojšnje preusmeritve v PHP

Preusmeritev, izvedena s funkcijo header, se ne zgodi v trenutku klica te funkcije. Konec koncev PHP sam ne izvede preusmeritve, ampak le pošlje ustrezno HTTP glavnico v brskalnik.

To pomeni, da se bo preusmeritev zgodila šele ko bo PHP izvedel celotno skripto do konca. Zaradi tega lahko pride do različnih neželenih učinkov.

Na primer, v naslednji kodi želimo izvesti bodisi preusmeritev bodisi poizvedbo v bazo. Toda poizvedba v bazo bo izvedena tudi če je bil ukaz za preusmeritev:

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

Da se izognemo takšnim težavam, je potrebno takoj po preusmeritvi poklicati funkcijo die, ki takoj konča izvajanje skripte in preusmeritev se bo zgodila takoj:

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

Ponazorite kakšen neželeni učinek v vaši kodi. Nato ga popravite z uporabo funkcije 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
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni