question concernant mysql_real_escape_string insertion dans une table
7 messages
• Page 1 sur 1
- jonny
- WRInaute discret

- Messages: 69
- Inscription: 8 Juin 2009
question concernant mysql_real_escape_string insertion dans une table
Bonjour,
J'ai une petite question concernant la fonction mysql_real_escape_string en php :
A quoi doit ressembler le contenu des champs insérés dans une table via cette fonction ?
Je m'explique :
Je traite un champ d'un formulaire par exemple : $var=mysql_real_escape_string($_POST["formvar"]);
j'insère dans ce champ toto’ OR 1<2 OR login=’ .
Mon script traite le formulaire et me renvoie un mail de confirmation où je vois tous les champs saisis.
Ma fonction traite bien les caractères "interdits" et j'obtiens dans mon mail : $var = toto’ OR 1. Jusque là tout fonctionne bien.
Par contre quand je regarde le champ de la table liée à $var, je m'aperçois que l'insertion s'est faite sous la forme toto’ OR 1<2 OR login=’ . Est-ce normal ?
Merci de m'éclairer !
a+
J'ai une petite question concernant la fonction mysql_real_escape_string en php :
A quoi doit ressembler le contenu des champs insérés dans une table via cette fonction ?
Je m'explique :
Je traite un champ d'un formulaire par exemple : $var=mysql_real_escape_string($_POST["formvar"]);
j'insère dans ce champ toto’ OR 1<2 OR login=’ .
Mon script traite le formulaire et me renvoie un mail de confirmation où je vois tous les champs saisis.
Ma fonction traite bien les caractères "interdits" et j'obtiens dans mon mail : $var = toto’ OR 1. Jusque là tout fonctionne bien.
Par contre quand je regarde le champ de la table liée à $var, je m'aperçois que l'insertion s'est faite sous la forme toto’ OR 1<2 OR login=’ . Est-ce normal ?
Merci de m'éclairer !
a+
-

forty - WRInaute passionné

- Messages: 1701
- Inscription: 30 Oct 2008
Re: question concernant mysql_real_escape_string insertion dans une table
si ce que tu as dans la table correspond a ce que tu as saisie : le résultat est normal. c'est le but ce cette fonction d'empêcher d'interpréter un contenu de zone comme une instruction SQL.
sil il y a une différence entre le mail et la table c'est que tu as du oublier d'utiliser la fonction htmlspecialchars('une chaine')
sil il y a une différence entre le mail et la table c'est que tu as du oublier d'utiliser la fonction htmlspecialchars('une chaine')
- jonny
- WRInaute discret

- Messages: 69
- Inscription: 8 Juin 2009
Re: question concernant mysql_real_escape_string insertion dans une table
Ok, merci pour la réponse.
OK, c'est ce que je j'ai. Je saisi toto’ OR 1<2 OR login=’ et dans la table j'ai toto’ OR 1<2 OR login=’.
cependant
C'est ce que j'ai aussi. Dans le mail j'ai $var = toto’ OR 1 et dans la table pour le champ correspondant j'ai toto’ OR 1<2 OR login=’
Donc la réponse à ma question est là...
D'ailleurs le plus important est de protéger le champ grâce à mysql_real_escape_string, non ?
Ou le fait d'avoir toto’ OR 1<2 OR login=’ dans la table est "dangereux" aussi ?
si ce que tu as dans la table correspond a ce que tu as saisie : le résultat est normal. c'est le but ce cette fonction d'empêcher d'interpréter un contenu de zone comme une instruction SQL.
OK, c'est ce que je j'ai. Je saisi toto’ OR 1<2 OR login=’ et dans la table j'ai toto’ OR 1<2 OR login=’.
cependant
sil il y a une différence entre le mail et la table c'est que tu as du oublier d'utiliser la fonction htmlspecialchars('une chaine')
C'est ce que j'ai aussi. Dans le mail j'ai $var = toto’ OR 1 et dans la table pour le champ correspondant j'ai toto’ OR 1<2 OR login=’
Donc la réponse à ma question est là...
D'ailleurs le plus important est de protéger le champ grâce à mysql_real_escape_string, non ?
Ou le fait d'avoir toto’ OR 1<2 OR login=’ dans la table est "dangereux" aussi ?
-

spout - WRInaute accro

- Messages: 4382
- Inscription: 14 Mai 2003
Re: question concernant mysql_real_escape_string insertion dans une table
Et à tout hasard, les "quotes" que tu nous montre ici c'est des "curly quotes", je ne sais pas dire si elles sont "échappées" comme des quotes normales:
Celles que tu nous montre:
Une quote normale:
... à tester.
Celles que tu nous montre:
- Code: Tout sélectionner
’
Une quote normale:
- Code: Tout sélectionner
'
... à tester.
- jonny
- WRInaute discret

- Messages: 69
- Inscription: 8 Juin 2009
Re: question concernant mysql_real_escape_string insertion dans une table
Bien vu !
ça change le traitement du formulaire du coup...
en utilisant les quotes normales dans mes champs avec : toto' OR 1<2 OR login=' et plus toto’ OR 1<2 OR login=’
le mail que je reçois en retour est coupé, c'est à dire que le traitement s'arrête après le première vérification des champs via mysql_real_escape_string.
Donc j'obtiens :
$var1 : toto\\\' OR 1 Puis plus rien... Alors qu'avant j'avais toute une série de variables vérifiée...
Le reste fonctionne (insertion table...)
C'est ça qu'est sensée faire la fonction mysql_real_escape_string ?
ça change le traitement du formulaire du coup...
en utilisant les quotes normales dans mes champs avec : toto' OR 1<2 OR login=' et plus toto’ OR 1<2 OR login=’
le mail que je reçois en retour est coupé, c'est à dire que le traitement s'arrête après le première vérification des champs via mysql_real_escape_string.
Donc j'obtiens :
$var1 : toto\\\' OR 1 Puis plus rien... Alors qu'avant j'avais toute une série de variables vérifiée...
Le reste fonctionne (insertion table...)
C'est ça qu'est sensée faire la fonction mysql_real_escape_string ?
- jonny
- WRInaute discret

- Messages: 69
- Inscription: 8 Juin 2009
Re: question concernant mysql_real_escape_string insertion dans une table
je suis sur un serveur mutualisé, ça va être tendu de mettre à off cette fonction...
mais ce n'est pas ça qui pose problème (me tromp-je ?)
sinon,
Je me répète, mais n'ayant aucune idée de ce que doit faire cette fonction mysql_real_escape_string, si tu as une idée, ce serait cool...
mais ce n'est pas ça qui pose problème (me tromp-je ?)
sinon,
Donc j'obtiens :
$var1 : toto\\\' OR 1 Puis plus rien... Alors qu'avant j'avais toute une série de variables vérifiée...
Le reste fonctionne (insertion table...)
C'est ça qu'est sensée faire la fonction mysql_real_escape_string ?
Je me répète, mais n'ayant aucune idée de ce que doit faire cette fonction mysql_real_escape_string, si tu as une idée, ce serait cool...
7 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- [mysql] insertion si pas dans la table
- PHP MySql copy table à table [RESOLU]
- influence Real Imps - Real Clicks et position google
- Mysql Insertion en double
- probleme insertion en serveur mysql
- mysql : insertion d'un champ vide
- insertion dans un champs Mysql de type BLOB
- Controle doublons et champs existants insertion mysql
- Problemes insertion avec formulaire dans mysql
- Reprise gestion de site et aide formulaire insertion mysql
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
