ugrás a tartalomhoz

Lekérdezési hiba

mauladam · 2011. Nov. 23. (Sze), 20.54
Sziasztok!

Van egy problémám a lekérdezésemmel, de nem tudom hogy mi a hiba benne, mert a menüben ugyan ezt a lekérdezést használom, csak éppen más mezőkön.

A kód:
  1. <?php  
  2.     if(isset($_GET['oldal'])){  
  3.         $feladat = "SELECT * FROM oldalak WHERE nev = ".$_GET['oldal'];  
  4.         $query = mysql_query($feladat);  
  5.         if(mysql_num_rows($query) > 0){  
  6.             while($sor = mysql_fetch_array($query)){  
  7.                 echo '<p>'.$sor['cim'].'</p><hr/>';  
  8.                 echo '<p>'.$sor['tartalom'].'</p>';  
  9.             }  
  10.         }  
  11.         else{  
  12.             $feladat = "SELECT * FROM oldalak WHERE nev = '404'";  
  13.             $query = mysql_query($feladat);  
  14.             if(mysq_num_rows($query) == 1){  
  15.                 $sor = mysql_fetch_array($query);  
  16.                 echo '<h1>'.$sor['cim'].'</h1><hr/>';  
  17.                 echo '<p>'.$sor['tartalom'].'<p>';  
  18.             }  
  19.         }  
  20.     }  
  21.     else{  
  22.         $feladat = "SELECT * FROM oldalak WHERE nev = 'fooldal'";  
  23.         $query = mysql_query($feladat);  
  24.         if(mysql_num_rows($query) == 1){  
  25.             $sor = mysql_fetch_array($query);  
  26.             echo '<h1>'.$sor['cim'].'</h1><hr/>';  
  27.             echo '<p>'.$sor['tartalom'].'<p>';  
  28.         }  
  29.     }  
  30. ?>  
 
1

ROSSZ

Poetro · 2011. Nov. 23. (Sze), 20.58
  1. $feladat = "SELECT * FROM oldalak WHERE nev = ".$_GET['oldal'];    
Ez rossz. Nem kicsit, NAGYON. Eleve ha stringet várunk, akkor idézőjelbe tesszük, valamint megfelelően escaplejük, jelen esetben legalább mysql_real_escape_string használatával.
2

Az ' jel

mauladam · 2011. Nov. 23. (Sze), 21.09
Az idézőjelet lefelejtettem...
Már jó is köszi! (nem vettem észre sajnos)
3

mysql_real_escape_string !!!

razielanarki · 2011. Nov. 24. (Cs), 15.17
ne felejtsd el escapelni a $_GET['oldal'] -t!

gondolj bele, mi lenne ha így hívnám meg a .php-det
  1. valami.php?oldal=0%3B%20TRUNCATE%20%60users%60%20--  
így ez a lekérdezés futna:
  1. SELECT * FROM oldalak WHERE nev = 0; TRUNCATE `users` --  
erre gondolok tehát:
  1. $feladat = "SELECT * FROM oldalak WHERE nev = '".mysql_real_escape_string ($_GET['oldal'])."'";