[PHP] Probleme de variable dans une clause WHERE

Probleme de variable dans une clause WHERE [PHP] - PHP - Programmation

Marsh Posté le 01-03-2007 à 15:19:05    

Bonjour,  
 
j'effectue actuellement un diapo en php,
les miniatures envoient vers un lien du type photo.php?id=43&pays=Finland
 
J'ai créer des boutons prev & next pour consulter les photos de la table mysql.
 
seulement quand je saisie:  
 

Code :
  1. $pays=$_GET['pays'];
  2. mysql_select_db($database_endorsen, $endorsen);
  3. $query_next = "SELECT photo.id FROM photo WHERE id >$id AND pays=$pays";
  4. $next = mysql_query($query_next, $endorsen) or die(mysql_error());
  5. $row_next = mysql_fetch_assoc($next);
  6. $suivant=$row_next['id'];


 
le serveur me retourne Unknown column 'Finland' in 'where clause'
 
si je remplace cette variable par une chaine, 'Finland', ca marche très bien. Que ce passe t'il ?


Message édité par endozen le 01-03-2007 à 15:22:09
Reply

Marsh Posté le 01-03-2007 à 15:19:05   

Reply

Marsh Posté le 01-03-2007 à 15:33:24    

hum, post a supprimer, j'ai trouvé la solution.

Reply

Marsh Posté le 01-03-2007 à 16:56:02    

faudrait penser à escaper les params que tu récupères, parce que sinon, bonjourle risque d'injection SQL


---------------
http://runnerstats.net
Reply

Marsh Posté le 01-03-2007 à 17:45:56    

c'est quoi cette méthode ?

Reply

Marsh Posté le 01-03-2007 à 20:57:31    

Utiliser un mysql_read_escape() sur les variables provenant de l'exterieur [ou plus généralement, controler leur cohérence], pour eviter les risque d'injection sql ;)


---------------
ilonet - Internet, Informatique et Webmastering
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed