⊗ppPmRdIns 405 of 447 menu

Natychmiastowe przekierowania w PHP

Przekierowanie wykonane za pomocą funkcji header nie następuje w momencie wywołania tej funkcji. W końcu PHP sam nie wykonuje przekierowania, a tylko wysyła odpowiedni nagłówek HTTP do przeglądarki.

Oznacza to, że przekierowanie nastąpi tylko wtedy, gdy PHP wykona cały skrypt do końca. Z tego powodu mogą występować różne niepożądane efekty.

Dla przykładu, w następnym kodzie chcemy wykonać albo przekierowanie, albo zapytanie do bazy. Ale zapytanie do bazy wykona się nawet jeśli była komenda na przekierowanie:

<?php if ($_GET['test']) { header('Location: test.php'); } $query = "UPDATE users SET changed=1 WHERE id=1"; mysqli_query($link, $query); // wykona się nawet przy przekierowaniu! ?>

Aby uniknąć podobnych problemów należy natychmiast po przekierowaniu wywołać funkcję die, która natychmiast zakończy wykonywanie skryptu i przekierowanie nastąpi od razu:

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

Odtwórz jakiś niepożądany efekt w swoim kodzie. Następnie popraw go za pomocą funkcji die.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć