HTTP přesměrování v PHP
Z MiS
Obsah |
Princip
- Tímto příkazem požádáme prohlížeč, aby místo této stránky zobrazil jinou.
- Uživatel nic nezjistí, jen bude vidět jinou URL adresu v adresním řádku.
Jak zapsat?
- Používáme funkci
header(...)
v PHP:
header("Location: /index.php");
- Funkce
header(...)
doplní do hlaviček protokou HTTP zadaný text. - V tomto případě využíváme hlavičku Location:.
- Předtím voláním funkce
header
nesmí být žádný HTML výstup!
Přesměrování do stejného adresáře
- Následující kód bude fungovat bez ohledu na umístění na serveru.
- Vždy odkáže na soubor index.php ve stejném adresáři, jako aktuální skript.
$host = $_SERVER['HTTP_HOST']; $uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\'); $stranka = 'index.php'; header("Location: http://$host$uri/$stranka");
Výpis potvrzení
- Pro výpis o úspěšně provedené akci si můžeme do URL adresy či do pole
$_POST
přidat další informace:
- Přesměrování v action-zpracuj.php
header("Location: /index.php?potvrd=ok"); die;
- Následné zobrazení hlášky v /index.php
<?php if ( isset($_GET["potvrd"]) && $_GET["potvrd"] == "ok" ) { ?> <p style="background-color:green;">Zápis se povedl!</p> <?php } ?>