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  
}
?>
