Autor Zpráva
Filo
Profil *
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
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
add 3) není to "else if" místo "elseif" ?
tiso
Profil
Nox - nie, viď riadok pod vložením 404
Nox
Profil
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 *
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 *
i ked isset() vrati TRUE este stale moze byt premenna empty, zda sami vyhodnejsie if (!empty($premenna)){} alebo if($premenna){}
BetaCam
Profil
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
echo - isset vs. !empty je viac-menej jedno, file_exists() to istí, ale striktnejšie je !empty.
Filo
Profil *
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 *
uff ako ti ja velmi musim podakovat

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0