Last active
November 16, 2016 10:05
-
-
Save tomasfejfar/387889182bc0360232677e809b1e6f49 to your computer and use it in GitHub Desktop.
Ošetření stránek pokud je vkládáme přímo z $_GET
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// v $page může být cokoli, nejen "kontakt" nebo nic. Takže potřebujeme zkontrolovat, že nám tam nepropadne něco co nechceme. | |
if (isset($_GET['page'])) { | |
$page = $_GET['page']; | |
} else { | |
$page = 'hlavni'; | |
} | |
// uděláme pole se seznamem povolených hodnot | |
$allowedPages = [ | |
'kontakt', | |
'blog', | |
'o-mne', | |
'hlavni', | |
'chyba', | |
]; | |
// funkce in_array vrací true/false podle toho jestli položka v poli je nebo ne | |
in_array('hlavni', $allowedPages); // true | |
in_array('test', $allowedPages); // false | |
/* | |
Takže přidáme podmínku, kde zkontrolujem jestli máme současnou stránku v poli povolených. | |
"!" v obrací logiku - když vrátí in_array true, tak výsledek bude false. | |
Protože chceme udělat "když NENÍ stránka v seznamu, tak bude stránka CHYBA". Jinak budem pokračovat jakoby nic. | |
*/ | |
if (!in_array($page, $allowedPages)) { | |
die('CHYBA: Stránka ' . $page . ' neexistuje'); | |
// nebo tam dáme přesměrování - ale museli bychom vytvořit stránku "chyba" | |
header('Location: /?page=chyba'); | |
die(); | |
} | |
// require by mohlo být v else, ale ve výsledku stačí, že pokud to bylo špatně, tak jsme to umřeli nebo přesměrovali. | |
require 'controllers/' . $page . '.php'; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment