⊗ppPmRdIns 405 of 447 menu

Redirecționare instantanee în PHP

Redirecționarea efectuată cu funcția header nu are loc în momentul apelării acestei funcții. La urma urmei, PHP însuși nu execută redirecționarea, ci doar trimite antetul HTTP corespunzător către browser.

Aceasta înseamnă că redirecționarea va avea loc doar atunci când PHP execută întregul script până la capăt. Din această cauză pot apărea diverse efecte parazite.

De exemplu, în următorul cod dorim să executăm fie o redirecționare, fie o interogare la baza de date. Dar interogarea la baza de date se va executa chiar dacă a existat comanda de redirecționare:

<?php if ($_GET['test']) { header('Location: test.php'); } $query = "UPDATE users SET changed=1 WHERE id=1"; mysqli_query($link, $query); // se va executa chiar și la redirecționare! ?>

Pentru a evita astfel de probleme este nevoie să apelăm imediat după redirecționare funcția die, care va încheia instantaneu executia scriptului și redirecționarea va avea loc imediat:

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

Reproduceți un efect parazit în codul dvs. Apoi remediați cu ajutorul funcției die.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge