requete sql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : requete sql

Re: requete sql

par dharth » 26 oct. 2010, 09:42

En fait la fonction mysql_real_escape_string() est bien nécessaire pour les variables texte. J'en ai eu besoin pour une 2ème requète. La 1ère ne contenait que des valeurs entières.
Merci, problème résolu.

Re: requete sql

par jojolapine » 26 oct. 2010, 09:41

Complètement faux!!!!
C'est un composant admin... certes!
Mais tu ne seras pas toujours réveillé, tu ne sera pas forcément le seul admin, ...
Je pari que tu rentrera un jour ou l'autre dans ton champs "titi": "j'aime les carottes"
Et paf, ça va planter...

Donc ne néglige pas ce genre de traitements!

Re: requete sql

par dharth » 26 oct. 2010, 09:36

En ce qui concerne l'échapement, ce n'est pas nécessaire car c'est un composant admin pour joomla. Il n'est donc pas ouvert aux autres utilisateurs. Et le message d'erreur était du au fait que je n'avait pas mis de simple cotes entre ma variable.

Re: requete sql

par jojolapine » 26 oct. 2010, 09:27

déjà commence par afficher ta requête générée:
echo "UPDATE base_name SET toto = '$_POST[toto]',titi = '$_POST[titi]' WHERE produit_id = $produit_id";
Ensuite, les règles de base de sécurité: Never Trust User Input!
Donc on échappe tout ce qu'on met dans la requête:
$requete =  "UPDATE base_name SET toto = '".mysql_real_escape_string($_POST[toto])."',titi = '".mysql_real_escape_string($_POST[titi])."' WHERE produit_id = ".(int)$produit_id;
Et j'espère pour toi que tu vérifies également le contenu de tes variables $_POST

EDIT: j'avais même pas vu, mais pour les indices textes d'un tableau, on met des guillemets:
$_POST['titi']

requete sql

par dharth » 26 oct. 2010, 09:12

Bonjour,
J'ai un problème sur joomla 1.5, au niveau des requetes sql. Cette requete permet de faire une mise à jour.

mysql_query("UPDATE base_name SET toto = '$_POST[toto]',titi = '$_POST[titi]' WHERE produit_id = $produit_id");

et j'ai une erreur sql : "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2".

Quelqu'un à une idée d'où ca peut venir?
merci