Autor | Zpráva | ||
---|---|---|---|
Anonymní Profil * |
#1 · Zasláno: 11. 5. 2005, 08:21:16
$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 |
#2 · Zasláno: 11. 5. 2005, 10:00:10
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 * |
#3 · Zasláno: 11. 5. 2005, 13:15:32
raději bych to testoval funkcí is_numeric($clanek), už kvůli tomu SQL dotazu
|
||
Kajman Profil * |
#4 · Zasláno: 11. 5. 2005, 15:43:59
Podmínka "isset($clanek)" bude splněna vždy, protože jste tuto proměnnou minulý příkaz nastavil.
|
||
Honza Hučín Profil |
#5 · Zasláno: 11. 5. 2005, 15:49:39
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 |
#6 · Zasláno: 11. 5. 2005, 16:30:58
>> 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 * |
#7 · Zasláno: 11. 5. 2005, 16:47:10
Honzo a co to presne znamena to:
$clanek = $_GET["clanek"]*1;? Nejaky zdroj v cestine. Diky ! |
||
Anonymní Profil * |
#8 · Zasláno: 11. 5. 2005, 16:48:06
ja sem ***** - to uz neumim ani malou nasobilku ;-)
Vid ? |
||
Anonymní Profil * |
#9 · Zasláno: 11. 5. 2005, 16:55:42
ale to potom musim upravit
if (isset($clanek)): na if ($clanek) |
||
printf Profil |
#10 · Zasláno: 11. 5. 2005, 20:21:04
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 |
#11 · Zasláno: 11. 5. 2005, 21:06:49
no prave a od toho tam je EMPTY ... ktera zjisti 0 pokud utocnik zkusi misto CISLA CLANKU nakej STRING ...a poputuje zpet na INDEX
|
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0