Nogle lidt sikre metoder:
function escapeIt($str) {
if(func_exist('mysql_real_escape_string')) {
return mysql_real_escape_string($str);
}
return mysql_escape_string($str);
}
var $realId = 0; // Instansier din variabel først.
$realId = (int)$_GET["id"]; // Sikrer at vi kun får en heltalsværdi og at man ikke kan tilejne id'et noget der ikke er et tal.
$realKeyword = '';
$realKeyword = escapeIt($_GET['keyword']);
echo "<center>
<FORM METHOD=GET ACTION=gamesearch.php>
<INPUT TYPE=TEXT NAME=keyword value='$keyword'>
<INPUT TYPE=SUBMIT VALUE=Search><br>
</FORM><hr></center>";
$sql = $safesql->query("SELECT * FROM table WHERE name LIKE '%%s%' AND id = $i ORDER BY %s %s",array(
$realKeyword,$realId,$field,$desc);
$query = mysql_query ($sql) or die(mysql_error());
som du kan se, bruger jeg noget der hedder safesql. Det er en superlækker klasse, der ikke nok med giver dig en ekstra sikkerhed i din SQL, men det giver også en pæn oversigt over den sql du er i gang med at foretage. Se mere på:
http://phpinsider.com/php/code/SafeSQL/Overordnet modvirker det sql-injections super perfekt, som synes at være temaet her.