Autor Zpráva
Anonymní
Profil *
$sekce = $_GET["sekce"];
$clanek = $_GET["clanek"];

if (isset($clanek)):

include "db.php";
$dotaz = MySQL_Query("SELECT * FROM prispevky WHERE id = $clanek;");
$clanek = MySQL_Fetch_Array($dotaz);
echo $clanek["text"];

else:

switch ($sekce):


Muj dotaz se tyka $clanek - kdyz bude jenom index.php?clanek=

tak se skoci do podminky, ale db vrati error, to je v poradku ale jak to mam osetrit ?Clanek ma byt cisleny parametr.
23k
Profil
takto

if (empty($clanek)) header("location:index.php"); // Pokud bude promenna bez parametru , presmeruj treba na index.php
else
{

.
.
.
UKAZ CLANEK

}

Btw co ma delat ten switch($sekce) ??
printf
Profil *
raději bych to testoval funkcí is_numeric($clanek), už kvůli tomu SQL dotazu
Kajman
Profil *
Podmínka "isset($clanek)" bude splněna vždy, protože jste tuto proměnnou minulý příkaz nastavil.
Honza Hučín
Profil
Velmi doporučuji na začátku dát
$clanek = $_GET["clanek"]*1;

Tím se ohlídá, aby ti někdo přes parametr nestrčil nějaký škodlivý kód, jednak u prázdné hodnoty parametru dosáhne, že v $clanek bude nula.
23k
Profil
>> raději bych to testoval funkcí is_numeric($clanek), už kvůli tomu SQL dotazu

Na to se ale neptal.

Myslim ze nez testovat takto, tak je lepsi promennou pretypovat => intval($_GET[id]);
Anonymní
Profil *
Honzo a co to presne znamena to:


$clanek = $_GET["clanek"]*1; 
?

Nejaky zdroj v cestine.
Diky !
Anonymní
Profil *
ja sem ***** - to uz neumim ani malou nasobilku ;-)
Vid ?
Anonymní
Profil *
ale to potom musim upravit

if (isset($clanek)):
na if ($clanek)
printf
Profil
No já bych to takhle neviděl. Myslím že dotaz byl jak zabránit chybám databáze, které se nelíbí že se jí předává prázdný parametr (ani '' ani 0). Tomu bych zabránil testováním parametru jestli je numerický,
pokud není tak přece nemá smysl hledat článek s nulou ani pokládat jiný dotaz.

Když někdo neuvede číslo článku, tak ho zřejmě zajímá něco jiného, proto ten switch, a nebudeme mu vnucovat článek nula. Když někdo místo čísla uvede řetězec či nějaký SQL dotaz, to bude pohroma...
23k
Profil
no prave a od toho tam je EMPTY ... ktera zjisti 0 pokud utocnik zkusi misto CISLA CLANKU nakej STRING ...a poputuje zpet na INDEX
Toto téma je uzamčeno. Odpověď nelze zaslat.

0