Skip to content

Instantly share code, notes, and snippets.

@tomasfejfar
Last active November 16, 2016 10:05
Show Gist options
  • Save tomasfejfar/387889182bc0360232677e809b1e6f49 to your computer and use it in GitHub Desktop.
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
<?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