Dynamický web
| Název školy | Vyšší odborná škola obalové techniky a Střední škola, Štětí, příspěvková organizace | ||
| Adresa školky | Kostelní 134, 411 08 Štětí | ||
| IČ | 46773509 | ||
| Název operačního programu | OP Vzdělávání pro konkurenceschopnost | ||
| Registrační číslo | CZ.1.07/1.5.00/34.1006 | ||
| Označení vzdělávacího materiálu | |||
| Název tématické oblasti (sady) | Programování | ||
| Název materiálu | PHP - cvičení II | ||
| Anotace | |||
| Autor | Jazyk | ||
| Očekávaný výstup | |||
| Klíčová slova | |||
| Druh výukového zdroje | Věková skupina žáků | ||
| Typ interakce | Ročník | ||
| Speciální vzdělávací potřeby | žádné | ||
| Zhotoveno, (datum/období) | Celková velikost | ||
Obsah
Prerekvizity
Výchozí soubor
Výchozí soubor projektu bude index.php.
Úloha 1: Menu
Vytvořte jednoduché menu, které je realizováno pomocí výčtového elementu (<ul>). Položky menu jsou následující: domů, katalog, objednávka a kontakt. Atribut href u každého z odkazů odkazuje na týž soubor: index.php.
řešení<ul> <li><a href="index.php">domů</a></li> <li><a href="index.php">katalog</a></li> <li><a href="index.php">objednávka</a></li> <li><a href="index.php">kontakt</a></li> </ul>
Jednotlivé stránky
Je jasné, že pomocí menu, které jsme vytvořili výše, se nikam nedostaneme. Přepínání mezi stránkami bude zajištěno pomocí metody GET.
Ke každému z odkazů připojte GET parametr page s hodnotou podle stránky, na kterou chceme odkázat.
Např. u katalogu to bude page=katalog.
<ul> <li><a href="index.php?page=domu">domů</a></li> <li><a href="index.php?page=katalog">katalog</a></li> <li><a href="index.php?page=objednavka">objednávka</a></li> <li><a href="index.php?page=kontakt">kontakt</a></li> </ul>
Úloha 2: GET
V souboru index.php dopište kód, kde s využitím řídící konstrukce (switch/if) zachytíte GET požadavek v URL a podle toho nabídnete uživateli požadovaný obsah.
Pravděpodobně využijete include, pro který si připravíte jednotlivé stránky, resp. jejich obsah, a podle parametru $_GET["page"] se rozhodnete, který soubor budete vkládat do indexu.
<?php switch ($_GET["page"]) { case "domu": include "pages/domu.php"; break; case "katalog": include "pages/katalog.php"; break; case "objednavka": include "pages/objednavka.php"; break; case "kontakt": include "pages/kontakt.php"; break; } /* * Všimněte si, že v tomto případě jsou všechny vkládané stránky navíc v podadresáři "pages". */
Úloha 3: Drobnosti
Pokud se vaše řešení shoduje se zde uvedeným, pak můžete narazit na několik drobných chybek.
URL bez parametru I.
Když v URL nebude žádný parametr, zobrazí se chybová hláška typu Notice ohledně toho, že index page není definován.
Jak tuto chybu odstranit?
<?php switch ($_GET["page"]) { case "domu": include "pages/domu.php"; break; case "katalog": include "pages/katalog.php"; break; case "objednavka": include "pages/objednavka.php"; break; case "kontakt": include "pages/kontakt.php"; break; } }
URL bez parametru II.
Stejný stav, jako výše, chyba je pryč, ale nezobrazí se výchozí text pro "domů", což by asi bylo dobré, neboť toto je domovská stránka.
řešení
<?php switch ($_GET["page"]) { case "domu": include "pages/domu.php"; break; case "katalog": include "pages/katalog.php"; break; case "objednavka": include "pages/objednavka.php"; break; case "kontakt": include "pages/kontakt.php"; break; } } else { include "pages/domu.php"; }
URL z chybnou hodnotou v parametru page
Co když nějaký vtipálek bude do parametru page dosazovat libovolné hodnoty?
V takovém případě mu nabídneme chybovou stránku s textem, že Požadovaná stránka neexistuje.
<?php switch ($_GET["page"]) { case "domu": include "pages/domu.php"; break; case "katalog": include "pages/katalog.php"; break; case "objednavka": include "pages/objednavka.php"; break; case "kontakt": include "pages/kontakt.php"; break; default: include "pages/eror.php"; break; } } else { include "pages/domu.php"; }

