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:
<?php
	if(isset($_GET['oldal'])){
		$feladat = "SELECT * FROM oldalak WHERE nev = ".$_GET['oldal'];
		$query = mysql_query($feladat);
		if(mysql_num_rows($query) > 0){
			while($sor = mysql_fetch_array($query)){
				echo '<p>'.$sor['cim'].'</p><hr/>';
				echo '<p>'.$sor['tartalom'].'</p>';
			}
		}
		else{
			$feladat = "SELECT * FROM oldalak WHERE nev = '404'";
			$query = mysql_query($feladat);
			if(mysq_num_rows($query) == 1){
				$sor = mysql_fetch_array($query);
				echo '<h1>'.$sor['cim'].'</h1><hr/>';
				echo '<p>'.$sor['tartalom'].'<p>';
			}
		}
	}
	else{
		$feladat = "SELECT * FROM oldalak WHERE nev = 'fooldal'";
		$query = mysql_query($feladat);
		if(mysql_num_rows($query) == 1){
			$sor = mysql_fetch_array($query);
			echo '<h1>'.$sor['cim'].'</h1><hr/>';
			echo '<p>'.$sor['tartalom'].'<p>';
		}
	}
?>
 
1

ROSSZ

Poetro · 2011. Nov. 23. (Sze), 20.58
$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
valami.php?oldal=0%3B%20TRUNCATE%20%60users%60%20--
így ez a lekérdezés futna:
SELECT * FROM oldalak WHERE nev = 0; TRUNCATE `users` --
erre gondolok tehát:
$feladat = "SELECT * FROM oldalak WHERE nev = '".mysql_real_escape_string ($_GET['oldal'])."'";