|
Poslao: 09 Nov 2010 23:11
|
offline
- Pridružio: 13 Mar 2009
- Poruke: 229
|
Ovo je parce koda od login forme, funkcija mysql_num_rows pravi problem i dobijam sledece obavestenje:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\posao\logovanje.php on line 65
Nadam se da ce neko da uoci gresku
if (isset ($_POST['korime'])&& isset ($_POST['password']))
{
//Ako je korisnik pokusao da se prijavi
$korime=$_POST['korime'];
$password=md5($_POST['password']);
$db_conn=mysql_connect("localhost", "root","");
mysql_select_db("zaposljavanje",$db_conn);
$query="select * from DIPLOMCI
where KOR_IME='$korime'
and PASSWORD='$password'
and AKTIVIRAN='1'";
$result = mysql_query($query,$db_conn);
i[code]f (mysql_num_rows($result)>0)[/code]
{
//ako je korisnik pronadjen u bazi podataka
//registrujemo njegov indetifikator u sesiji
$_SESSION['validan_diplomac']=$korime;
}
}
I da ova linija 65 je kao sto rekoh ova
if (mysql_num_rows($result)>0)
|
|
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
|
Poslao: 09 Nov 2010 23:48
|
offline
- Source

- Legendarni građanin
- Pridružio: 10 Jan 2005
- Poruke: 3319
- Gde živiš: Stara Pazova
|
Probaj recimo, $count = mysql_num_rows($result);
I onda if($count == 1) pa registrujes session
|
|
|
|
|
|
|
Poslao: 10 Nov 2010 00:35
|
offline
- Svemirko
- Legendarni građanin
- Pridružio: 24 Mar 2004
- Poruke: 3962
- Gde živiš: Zemun
|
ovo je tako podlozno SQL injection-u...
ne znam da li vezbas ili radis nesto ali ovo ti je busno skroz na skroz
|
|
|
|
|
|
|
Poslao: 10 Nov 2010 00:40
|
offline
- Pridružio: 13 Mar 2009
- Poruke: 229
|
Ma vezbanje, ne radim nista ozbiljno. Trebao sam da odradim mysql_real_escape_string ali to mi sad nije toliko bitno.
@Source probacu ovako kao sto kazes pa javljam jel proslo
|
|
|
|
|
|
|
Poslao: 10 Nov 2010 00:49
|
offline
- Source

- Legendarni građanin
- Pridružio: 10 Jan 2005
- Poruke: 3319
- Gde živiš: Stara Pazova
|
Naravno, uradi strip slashes i real escape string kada dohvatis usr i pass sa $_POST
|
|
|
|
|
|
|
Poslao: 10 Nov 2010 00:54
|
offline
- Pridružio: 13 Mar 2009
- Poruke: 229
|
Source ::Probaj recimo, $count = mysql_num_rows($result);
I onda if($count == 1) pa registrujes session
Ako uradim ovako jednostavno ne moze da pronadje ni jedan zapis sa ovim zadatim uslovima iako u bazi postoji.
Ako recimo stavim ovo "if($count == 0)" sta god da ukucam za usera i pass logovanje prodje, tj ne proverava se uopste uslov da li postoji taj korisnik u bazi, cudno
|
|
|
|
|
|
|
Poslao: 10 Nov 2010 01:27
|
offline
- Source

- Legendarni građanin
- Pridružio: 10 Jan 2005
- Poruke: 3319
- Gde živiš: Stara Pazova
|
Evo ti vidi ovaj kod... Mora da radi .
[Link mogu videti samo ulogovani korisnici]
|
|
|
|
|
|
|
Poslao: 08 Dec 2010 08:34
|
offline
- eevan79

- Građanin
- Pridružio: 21 Apr 2007
- Poruke: 98
|
Prvo promeni SQL upit:
$query="SELECT KOR_IME, PASSWORD
FROM DIPLOMCI
WHERE KOR_IME='$korime'
and PASSWORD='$password'
and AKTIVIRAN='1' LIMIT 1";
Ili treba da bude:
$query="SELECT KOR_IME, PASSWORD
FROM DIPLOMCI
WHERE KOR_IME='$korime'
and PASSWORD='$password'
and AKTIVIRAN=1 LIMIT 1";
Koji ti je tip polja AKTIVIRAN u tabeli DIPLOMCI?
Ako ti prijavljuje da upit nije dobar (mysql_num_rows), to znači da nije.
I takođe ubaci posle query:
if(!$result){die(mysql_error();}
|
|
|
|
|
|