⊗ppPmRdIns 405 of 447 menu

Reindirizzamento immediato in PHP

Il reindirizzamento eseguito con la funzione header non avviene nel momento in cui viene chiamata questa funzione. Dopotutto, PHP non esegue il reindirizzamento stesso, ma invia solo l'intestazione HTTP corrispondente al browser.

Ciò significa che il reindirizzamento avverrà solo quando PHP avrà eseguito completamente l'intero script. A causa di ciò, possono verificarsi vari effetti parassiti.

Ad esempio, nel codice seguente vogliamo eseguire un reindirizzamento o una query al database. Ma la query al database verrà eseguita anche se era stato dato il comando per il reindirizzamento:

<?php if ($_GET['test']) { header('Location: test.php'); } $query = "UPDATE users SET changed=1 WHERE id=1"; mysqli_query($link, $query); // verrà eseguita anche con il reindirizzamento! ?>

Per evitare problemi simili è necessario chiamare subito dopo il reindirizzamento la funzione die, che terminerà istantaneamente l'esecuzione dello script e il reindirizzamento avverrà immediatamente:

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

Riproduci un qualche effetto parassita nel tuo codice. Poi correggilo utilizzando la funzione die.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta