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"; }