Probleme apostrophre mysql_real_escape_string

[Résolu]
Signaler
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
-
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
-
Bonjour,

J'ai un formulaire de contact en PHP, qui enregistre dont le commentaire de l'utilisateur. Or la requete SQL foire quand on y ajoute des apostrophes. Au niveau de l' "INSERT INTO" j'ai fait un mysql_real_escape_string, qui d'habitude marche, sauf là, évidemment ! (je travaille avec les pilotes ODBC)
Voici mon code :
$Commentaires = trim( nl2br( $_POST['commentaires'] ) );
ConnexionBase( $connect );
$SQL = "INSERT INTO formail(societe,nom,prenom,telephone,email,commentaires,date,civilite,secteur,fonction,adresse,ville,codepostal,fax,lu) values ";
$SQL.= "('".$Societe."','".$Nom."','".$Prenom."','".$Tel."','".$Email."','".$Commentaires."','".$Date."','','','','','','','','0')";
$res = odbc_exec($connect, $SQL);
echo $SQL;
DeconnexionBase( $connect );


ça bug également quand je mets :
$Commentaires = mysql_real_escape_string( trim( nl2br( $_POST['commentaires'] ) ) );


SVP aidez-moi :)
Merci d'avance.
Ju'

7 réponses

Messages postés
337
Date d'inscription
samedi 3 février 2007
Statut
Membre
Dernière intervention
4 janvier 2011

Je dirais que c'est ta colonne date !

Date est un mot réservé... Renomme ta colonne (dateCommentaire? dateNaissance?)

Sinon tu fais
$SQL = "INSERT INTO formail(societe,nom,prenom,telephone,email,commentaires,`date`,civilite,secteur,fonction,adresse,ville,codepostal,fax,lu) values ";
$SQL.= "('".$Societe."','".$Nom."','".$Prenom."','".$Tel."','".$Email."','".$Commentaires."','".$Date."','','','','','','','','0')";

(avec des apostrophe renversé autour de date, ca peut marcher suivant le SGBD....)

La meilleur solutions restant de ne pas nommer t'es champs avec des mots réservé par SQL...
-------------------------------------------------------------------
La recherche est ton amie ! Promis elle ne te mordra pas...
Enjoy
N'oubliez pas d'accepter pour aidez les autres quand ils cherchent !
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
4
Bonjour et merci, non ce n'est pas ça le soucis apparemment.

Mais dans la requete, a la palce de mysql_real_escape_string( $Commentaire ) j'ai fait str_replace("'","''",$Commentaire) et ça fonctionne. Je ne sais pas trop pourquoi l'une fonctionne et pas l'autre mais bon...
Au moins mon soucis est reglé. Il ne me reste juste à comprendre pourquoi.

Merci, au moins j'ai appris un truc, je ne savais pas que DATE était un mot réservé :)

Bonne journée
Messages postés
337
Date d'inscription
samedi 3 février 2007
Statut
Membre
Dernière intervention
4 janvier 2011

Je te conseillerai d'utiliser la fonction addslashes plutôt que ton str_replace()

-------------------------------------------------------------------
La recherche est ton amie ! Promis elle ne te mordra pas...
Enjoy
N'oubliez pas d'accepter pour aidez les autres quand ils cherchent !
Messages postés
337
Date d'inscription
samedi 3 février 2007
Statut
Membre
Dernière intervention
4 janvier 2011

Bonjour,

Si tu mettais l'erreur affichée (php ou sql) cela te permettrais sûrement une réponse plus rapide.

-------------------------------------------------------------------
La recherche est ton amie ! Promis elle ne te mordra pas...
Enjoy
N'oubliez pas d'accepter pour aidez les autres quand ils cherchent !
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
4
Bonjour, oui pardon :

Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Syntaxe incorrecte vers 'erff'., SQL state 37000 in SQLExecDirect in C:\Programmes\wampserver2.0c\www\html\contact.php on line 52

voici mon erreur

"erff" est la partie de mon test apres l'apostrophe que j'ai mise dans le commentaire envoyé
Messages postés
337
Date d'inscription
samedi 3 février 2007
Statut
Membre
Dernière intervention
4 janvier 2011

Bonjour,

Quel est ton SGBD? (acces, msSql? mysql?)
-------------------------------------------------------------------
La recherche est ton amie ! Promis elle ne te mordra pas...
Enjoy
N'oubliez pas d'accepter pour aidez les autres quand ils cherchent !
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
4
Ha oui pas faut ! :)
J'utilise MySQL