MySQL_Real_Escape_String [Résolu]

Signaler
Messages postés
355
Date d'inscription
samedi 30 octobre 2004
Statut
Membre
Dernière intervention
14 avril 2009
-
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
-
Bonjour,
Je développe actuelement une application de gestion d'inscription basé sur mysql. En php nous disposons d'une fonction mysql_real_escape_string() qui nous permet d'échapper certain caractère dans les données saisie par l'utilisateur afin d'éviter tous problèmes notamment au niveau des injection sql. J'aurais donc voulu savoir si un tel système était disponible en C#. Je cherche surtout pour échapper les apostrophes.

Merci d'avance.

8 réponses

Messages postés
355
Date d'inscription
samedi 30 octobre 2004
Statut
Membre
Dernière intervention
14 avril 2009

j'avais oublié ce détail... même si tu as toi aussi une petite erreur :
\' correspond à l'échapement de ' pour le C# lui même, pour conserver l'antislash à destination de mysql il faut :
rue = rue.Replace("'", "\\'");
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
Salut,

Je t'invite a lire les 2 articles cités par coq dans ce post



Mx
MVP C#
Messages postés
355
Date d'inscription
samedi 30 octobre 2004
Statut
Membre
Dernière intervention
14 avril 2009

Je refuse déja certain caractère et certain mot clé... il me reste simplement à parsé le guillemet simple (ou apostrophe) en fait.

Jai bien essayé ceci :
string rue = "10 rue l'ecuyer";
rue.replace("'", "\'");

Mais quand j'affiche 'pour controle la chaine rue, elle contient l'apostrophe sans le caractère d'échapement... Quelqu'un sait pourquoi?

J'ai bien regardé les 3 articles mais cela me semble lourd pour parser simplement un apostrophe par ci par là.
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
En C#, la classe string est immuable, et la Méthode Replace te permet de recuperer une nouvelle instance de ta string avec les modifications.

rue = rue.Replace("'", "\'");



Mx
MVP C#
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
Mais en utilisant les requetes parametrees, normalement il n'y a pas de probleme avec tes '
Et les requetes paramétrées sont faites pour eviter les injections



Mx
MVP C#
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
J'ai juste fait un copier coller de ton code en mettant rue = , sans vérifier le reste ^^



Mx
MVP C#
Messages postés
355
Date d'inscription
samedi 30 octobre 2004
Statut
Membre
Dernière intervention
14 avril 2009

je m'en doute bien ^^ (je t'ai send un mp aussi suite à un pb de printpreviewcontrol qui reste noir...)
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
Pose ta question ici, ou recrées un message dans le forum, pour qu'elle puis profiter a tout le monde ;) (et aussi avoir plus d'aide )



Mx
MVP C#