Hallo iedereen,

Ik heb een klein probleempje met mijn sql code:
Ik heb een variable var1 en in de inhoud van var 1 = Edward Goucher 'Lore'

SQL = ......AND ".$var2." = '".$var1."'";

Nu zien jullie het probleem ook al.. de 'Lore' in variable 1 maar hoe kan ik voorkomen dat 'lore' ervoor zorgd dat mijn haakjes afgesloten worden.

weet iemand een stukje code waardoor hij die ' ' negeert?

Thanx
Dat is precies het principe waarop SQL injection (een veiligheidslek) ook berust. Beveilig variabele die je in je query gebruikt daarom altijd met [php]mysql_real_escape_string()[/php].
Ik snap niet precies wat u ermee bedoeld en in het voorbeeld dat u erbij deed word het ook niet duidelijker van..

$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
mysql_real_escape_string($user),
mysql_real_escape_string($password));
staat op die site.. hoe worden die '%s ' dan ingevuld??
en op de mannier hoe ik het doe moet het toch ook mogelijk zijn?

Bedankt voor de hulp!
De twee %s (van string) komen dan vanaf de 2e en de opvolgende parameter, in dit geval de $user en $password, welke door mysql_real_escape_string() gaat.

Met die functie kan je schadelijke tekens escapen voordat je ze in MYSQL stopt.
Het is niet nodig om sprintf() te gebruiken. Zo kan het ook:
<?php
$var1 = mysql_real_escape_string("Edward Goucher 'Lore'");
?>

Reageren