⊗ppPmRdIns 405 of 447 menu

Välitön uudelleenohjaus PHP:ssä

Uudelleenohjaus, joka suoritetaan header-funktiolla, ei tapahdu heti funktion kutsun yhteydessä. Loppujen lopuksi PHP ei itse suorita uudelleenohjausta, vaan ainoastaan lähettää vastaavan HTTP-otsikon selaimelle.

Tämä tarkoittaa, että uudelleenohjaus tapahtuu vasta kun PHP on suorittanut koko skriptin loppuun. Tämän vuoksi voi ilmetä erilaisia haitallisia vaikutuksia.

Esimerkkinä seuraavassa koodissa haluamme suorittaa joko uudelleenohjauksen tai tietokantakyselyn. Mutta tietokantakysely suoritetaan, vaikka uudelleenohjauskomento olisi annettu:

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

Välttääksesi tällaiset ongelmat tulee heti uudelleenohjauksen jälkeen kutsua die-funktiota, joka keskeyttää välittömästi skriptin suorituksen ja uudelleenohjaus tapahtuu samantien:

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

Toteuta jokin haitallinen vaikutus koodissasi. Korjaa sitten se die-funktion avulla.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää