Určitě jste už viděli odkaz ve tvaru index.php?str=kontakt (obdobné jsou i na tomto webu). Ukážu Vám, co to znamená, a jak se to dá využít. Budu vám muset vysvětlit pár věcí, které by v učebnici PHP byly určitě až později, ale aspoň budete vědět, o čem byste se třeba chtěli dozvědět něco víc.
Vysvětlili jsme si základní princip příkazu include. S jeho využitím můžete dělat stránky tak, že:
Takže např. pak máte soubory hlavicka.php, menu.php a paticka.php; všechny stránky pak vypadají podobně, tedy nějak takto:
<?php
include ("hlavicka.php");
include ("menu.php");
?>
… tady bude unikátní html kód, v každé stránce jiný …
<?php
include ("paticka.php");
?>
Ty přemýšlivější z vás už jistě koumou, jak to ještě víc zjednodušit. Takhle sice vkládáme všechno, co je stejné, z externích souborů; máme ale mnoho souborů, obsahujících stejné include. Nešlo by nějak zařídit, že by ta stránka byla jen jedna, a jenom by se nějak rozlišilo, jaký obsah se v ní má zobrazit? Aby mohl být pokaždý jiný…
Jistě že by to šlo. Tam, kde je ve výše uvedeném příkladu psáno o „unikátním“ html kódu, bude také include. A soubor, který se má includovat, bude pokaždé jiný. Podívejme se, jak na to:
Budeme mít jednu stránku, které při zavolání řekneme, jaký obsah má includovat.
V původní verzi měl každý soubor svůj název, a soubor s určitým názvem měl svůj určitý obsah. My teď chceme mít jen jeden soubor, a vkládat do něj pokaždé jiný, ale předem určený obsah. Nějak mu musíme sdělit, co má být ve stránce za obsah. Nejjednodušší cesta je – přidat do adresy, neboli URL, informaci o tom, co chceme zobrazit.
Dejme tomu, že se snažíme otevřít stránku s kontaktními údaji. Odkaz bude ve tvaru index.php?str=kontakty.
Máme hodnotu "kontakty" v adrese, ale zatím nevíme, jak ji dostat do skriptu, abychom ji tam mohli využít.
Hodnoty, které podobným způsobem předáme skriptu v adrese, jsou pak ve skriptu k dispozici v poli $_GET[]. No dobře, to je poněkud složité vysvětlení…
Pokud je v adrese zadáno …?nazev=kocourek, tak je ve skriptu k dispozici proměnná $_GET['nazev'] s hodnotou "kocourek".
Můžete si to zkusit:
Vytvořte si PHP soubor např. pokus.php:
<?php
echo "<p>TEST</p>";
echo $_GET['str'];
?>
Uložte skript na server a zkuste ho zavolat. Pokud ho vyvoláte odkazem www.cokoli.cz/pokus.php, nic se nestane, uvidíte jen nápis TEST. Ale zkuste www.cokoli.cz/pokus.php?str=tralalalala. (To "cokoli" v adrese samozřejmě nahraďte za jméno serveru, kam jste soubor nahráli.) Tralalala nahraďte za cokoli vás napadne. Ještě něco není jasné?
Dobře, udělala jsem to za vás. Zkuste si to:
Stále trochu tápete? Otevřete si výše uvedeným odkazem stránku pokus.php?str=tralalalala a pak zkuste nahoře v adresním řádku prohlížeče změnit tralalalala za něco jiného a potvrďte entrem...
Pokud umíme hodnotu, předanou přes proměnnou v adrese, vypsat na obrazovku, můžeme ji samozřejmě využít i pro cokoli jiného. Podíváme se na to v další kapitole.