Autor Zpráva
tynko
Profil *
Ahojte potreboval by som poradit

mam php videa.php?linkid=5

kde z databazy taham info o linkid=5

ale ked dam iba ciste videa.php je tam cista www kedze z databazy sa nic netaha ako osetrit toto aby tam bolo nieco popripade presmerovania na index alebo take nieco

dik za kazdu radu

— Moderátor: upravil jsem nadpis. —
Timy
Profil
if(!isset($_GET["linkid"]))
djlj
Profil
if(!isset($_GET["linkid"]) || !intval($_GET["linkid"]))
anode
Profil
if (empty($_GET['linkid'])) { ... }

:) a při cpaní přímo do dotazu přetypovat na int a hotovo
tynko
Profil *
a skusil by mi to niekto aj dat dnu do php
hadam som zobral tu dobru cast dalej je uz iba zapis do databazy

if ($linkid == "") {}

else {

$query = "SELECT * FROM links_clickmov WHERE url = '$linkid'";
$result = mysql_query($query);
if(!$result) {
echo mysql_error();
exit;
}
if(mysql_num_rows($result) == 0) {
$query = "INSERT INTO links_clickmov VALUES('$linkid', 1)";
$result = mysql_query($query);

} else {
$query = "UPDATE links_clickmov SET count = count + 1 WHERE url = '$linkid'";
$result = mysql_query($query);


}

a neda sa spravit tak aby sa mi nacital obsah napr index.php
BetaCam
Profil
if (!isset($linkid) OR $linkid == "" OR !intval($linkid)) 
{
  header("Location: index.php");
}

else {

$query = "SELECT * FROM links_clickmov WHERE url = '$linkid'";
$result = mysql_query($query);
if(!$result) {
echo mysql_error();
exit;
}
if(mysql_num_rows($result) == 0) {
$query = "INSERT INTO links_clickmov VALUES('$linkid', 1)";
$result = mysql_query($query);

} else {
$query = "UPDATE links_clickmov SET count = count + 1 WHERE url = '$linkid'";
$result = mysql_query($query);


} 
K.
Profil *
anode
A co kdyz bude v systemu existovat linkid 0?
To, ze fce empty vraci true na retezec "0", me az nehorazne stve.
Fantomasmag
Profil
Tak to vrácení 0 nějak ošetři, třeba přesměrováním
tynko
Profil *
BetaCam - dik za upravu

Fantomasmag - ahoj no pokial mas trosku casu a chcelo by sa ti osetrit tu 0 lebo ja netusim

+ keby mi este niekto vedel helfnut ked si opitam linkid ktore este nieje v databaze tak da to stranku bez obsahu kedze nema tam co davat toto by sa nedalo daako osetrit ?

ale asi tento kus kodu nestaci alebo hej ?
v6ak
Profil
Řekl bych, že intval nic neřeší:
>>> var_dump(intval("12'\n--"))
int(12)
Pokud bude intval jen v podmínce, tak to SQL injekci nezabrání.

Ledaže používáte nedoporučované magic_quotes_gpc.

Navíc header("Location: index.php"); neukončí skript, je potřeba ještě die;.
anode
Profil
K.
No ono naštěstí většinou (asi i v tomhle případě) je to ID do tabulky, kde předpokládám auto_increment, tedy nečekám zde hodnotu 0. Takže já si klidně dovolím ten luxus a empty() použiju :)
BetaCam
Profil
v6ak
Ledaže používáte nedoporučované magic_quotes_gpc.

Ošetřit vstupy musíš stejně ať už sou magic_quotes zaplé nebo nebo nejsou. Navíc původní tazatel se neptal na ošetření proti SQL injection. To jak si to člověk pořeší je jeho věc (slashování se stejně nevyhne).
v6ak
Profil
BetaCam
Ošetřit vstupy musíš stejně ať už sou magic_quotes zaplé nebo nebo nejsou.
Nevím, jak je na tom magic_quotes_gpc se znakovou sadou, ale při dodržení určitých podmínek někdy možná ne. Nicméně: magic_quotes_gpc je hnus.

Navíc původní tazatel se neptal na ošetření proti SQL injection.
Neptal, ale může s tím mít problém.
BetaCam
Profil
v6ak
magic_quotes_gpc je hnus

Nevim nepoužívám nemohu ve větší míře soudit.

Nevím, jak je na tom magic_quotes_gpc se znakovou sadou, ale při dodržení určitých podmínek někdy možná ne.

Ano, ale to je zase každého věc jestli spoléhá na magic_quotes_gpc nebo si to radši slashuje sám a má to tedy plně pod kontrolou. Navíc ošetřením sem nemyslel jen slashování, ale i různé přetypování atd.

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