Autor | Zpráva | ||
---|---|---|---|
Filo Profil * |
#1 · Zasláno: 10. 12. 2007, 21:16:12
Zdravim, chtel sem si usetrit praci a volat vsechny soubory v jednom scriptu, ale stvoril sem peknou prasarnu.
nevite jak to zjednodusit? nebo zprehlednit? a rikladam zpusoby volani souboru "dat" a "php" Diky za zajem <?php $page=$_GET["page"]; // volam jen pokud je soubor php $n=$_GET["n"]; //volam jen pokud je soubor dat $dir=""; $uvodni="nov.php"; if ($page) { if (file_exists($dir.$page.".php")) include($dir.$page.".php"); else { include $dir."404.php"; }} elseif { include ($dir.$uvodni); }elseif ($n) { if (file_exists($dir.$n.".dat")) include($dir.$page.".dat"); else { include $dir."nic.dat"; } } else { include ($dir.$uvodni); } ?> priklady odkazu: http://nekde.cz/?n=zapis/200712 http://nekde.cz/?page=fotky/fam |
||
tiso Profil |
#2 · Zasláno: 10. 12. 2007, 21:33:47
1. pracuj priamo s premennými $_GET, nerob si ich kópie (hádaj čo sa stane keď $_GET premenná nebude existovať?), testuj ich pomocou isset
2. nemáš ošetrené $_GET premenné voči vkladaniu hocičoho, niekto šikovný to môže zneužiť... 3. elseif bez podmienky sa ti tam dostalo ako? }}elseif { |
||
Nox Profil |
#3 · Zasláno: 10. 12. 2007, 21:42:59
add 3) není to "else if" místo "elseif" ?
|
||
tiso Profil |
#4 · Zasláno: 10. 12. 2007, 21:51:06
Nox - nie, viď riadok pod vložením 404
|
||
Nox Profil |
#5 · Zasláno: 10. 12. 2007, 21:59:53
vidím že to tam je, proto se ptám, jestli to je dobře, používám to odděleně a funguje to
|
||
Filo Profil * |
#6 · Zasláno: 10. 12. 2007, 22:45:33
1)Pokud promenna $_GET neexistuje, hodi to 404, ne? k isset si jeste musim nastudovat manual...
2) cim muzu osetrit $_GET proti vkladani hocičoho? 3) else if tam je nedopatrenim navic diky za podnetne rady, zitra se na to vrhnu:) |
||
echo Profil * |
#7 · Zasláno: 10. 12. 2007, 23:04:25
i ked isset() vrati TRUE este stale moze byt premenna empty, zda sami vyhodnejsie if (!empty($premenna)){} alebo if($premenna){}
|
||
BetaCam Profil |
#8 · Zasláno: 10. 12. 2007, 23:18:21
if($premenna) určitě ne pokud nebudeš mít proměnnou $promenna inicializovanou bude ti to vyhazovat otravnej NOTICE
if (!empty($premenna)) je už sice lepší, ale ne vždy tě zajímá jestli je proměnná prázdná. |
||
tiso Profil |
#9 · Zasláno: 10. 12. 2007, 23:59:11
echo - isset vs. !empty je viac-menej jedno, file_exists() to istí, ale striktnejšie je !empty.
|
||
Filo Profil * |
#10 · Zasláno: 11. 12. 2007, 16:36:27
Trochu sem to přeoral. Fuguje to jak má, ale časem tam přecejen udělám bezpečnostní opatření.
díky a doufam že se budu revanšovat v oblastech mě známějších. <?php $page=$_GET["page"]; // volam jen pokud je soubor php $n=$_GET["n"]; //volam jen pokud je soubor dat $dir=""; $uvodni="nov.php"; if ($page) { if (file_exists($dir.$page.".php")) include($dir.$page.".php"); else { include $dir."404.php"; } } elseif ($n) { if (file_exists($dir.$n.".dat")) include($dir.$n.".dat"); else { include $dir."nov.php"; } } else { include ($dir."nov.php"); } ?> |
||
jokko Profil * |
#11 · Zasláno: 11. 12. 2007, 20:30:17
uff ako ti ja velmi musim podakovat
|
||
Časová prodleva: 16 let
|
0