HTTP přesměrování v PHP
Z MiS
(Rozdíly mezi verzemi)
(Vytvoření stránky) |
(→Výpis potvrzení: Doplněno zobrazení výsledku.) |
||
| Řádka 29: | Řádka 29: | ||
* Pro výpis o úspěšně provedené akci si můžeme do URL adresy či do pole <code>$_POST</code> přidat další informace: | * Pro výpis o úspěšně provedené akci si můžeme do URL adresy či do pole <code>$_POST</code> přidat další informace: | ||
<div class="Priklad"> | <div class="Priklad"> | ||
| − | + | ; Přesměrování v <tt>action-zpracuj.php</tt>: | |
| + | header("Location: /index.php?potvrd=ok"); | ||
| + | die; | ||
| + | ; Následné zobrazení hlášky v <tt>/index.php</tt>: | ||
| + | <?php | ||
| + | if ( | ||
| + | isset($_GET["potvrd"]) | ||
| + | && | ||
| + | $_GET["potvrd"] == "ok" | ||
| + | ) { | ||
| + | ?> | ||
| + | <p style="background-color:green;">Zápis se povedl!</p> | ||
| + | <?php | ||
| + | } | ||
| + | ?> | ||
</div> | </div> | ||
Aktuální verze z 11. 2. 2015, 10:38
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
headernesmí 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
$_POSTpř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
}
?>