Portál AbcLinuxu, 30. dubna 2025 21:23
switch($parametr): case 'p1': include('./Inc/soubor1.php'); break; case 'p2': include('./Inc/soubor2.php'); break; case 'p3': include('./Inc/soubor3.php'); break; default: echo 'Chybny parametr'; exit; endswitch;Samozrejme osetreni chyby atp. je treba napsat tak, aby to bylo podle predstav ...
$map = array ( 'p1' => 'inc/service1.php', 'p2' => 'inc/service2.php', ... );a funkcia
array_key_exists
- "konfiguračný súbor": v tom prípade bude bezpečné, ak budete vstupný parameter kontrolovať, napr, nesmie obsahovať iné znaky ako "[-.a-zA-Z0-9]"
To je něco takového co jsem hledal, akorát že lepší to bude asi dát do databáze, ještě přemýšlím jestli by to nešlo udělat úplně bez includování, že zavolám funki, která se rozhodne zavolá podle com=neco a zavolá to neco.
if (!preg_match("/^[a-z0-9\-]+$/i", $parametr) { header('HTTP/1.1 404 No hackers please'); exit(); }
<? require_once 'lib/page.php'; $pg = new Page(); $pg->data['text'] = "hello world"; $pg->render(); ?>A v lib/page.php bude veskery kod, ktery uplaca html kod stranky a treba i jednoduchy sablonovaci system. Ten u sveho posledniho webu delam tak, ze lib/page.php si includne template/neco.php, kde je kopec html doplneny o <? echo $d['neco'];?>. Je to jednoduche a prakticke. V sablonach pak muze byt i slozitejsi kod treba na vykresleni tabulky, ale je dobre udrzovat poradek a udrzovat oddelene vykreslovani a logiku aplikace.
<? $pg->data['text'] = "hello world"; ...... ?>index.php:
<? require_once 'lib/page.php'; $pg = new Page(); require('hello_world.php'); // Zde by mohl byt ten switch, apod... $pg->render(); ?>Mozna jsem te jen nepochopil, ale takhle mi to osobne vyhovuje mnohem vic a nemusim v kazdym skriptu typu "hello_world.php" psat to same dokola
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.