Problème d'encodage avec fonction "mysql_real_escape_string" [Résolu]

Messages postés
102
Date d'inscription
vendredi 18 août 2006
Dernière intervention
29 mai 2012
- - Dernière réponse : anthony428
Messages postés
102
Date d'inscription
vendredi 18 août 2006
Dernière intervention
29 mai 2012
- 6 août 2009 à 14:55
Bonjour,
Alors voila, je récupère des champs d'un fichier csv.
Je les récupère dans un tableau puis j'utilise la fonction utf8_decode avant de les envoyer dans ma base de données, comme cela, les caractères spéciaux sont gérés.

Le problème est que le transfert s'arrête lorsque j'ai un apostrophe dans un des champs du fichier. Il considère que la requête SQL est fausse et arrête le traitement.

J'ai donc trouvé la fonction "mysql_real_escape_string" qui doit mettre un caractère d'échappement pour que celui ci soit géré comme une chaîne de caractère classique mais dès que je l'utilise couplé à ma fonction utf8, je pers l'affichage des accents.

Quelqu'un à t'il une solution ?

Voici ma façon de procéder :

$ville = mysql_real_escape_string($data[6]);
$ville = utf8_decode($ville); echo $ville;


echo $ville; revoit "le ch?au d\'ol?n"
au lieu de "le château d'oléron"

N'y a t'il pas moyen de combiner ces deux fonctions pour avoir le résultat que je souhaite à l'affichage ?

Merci d'avance
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
18
Date d'inscription
mercredi 18 octobre 2000
Dernière intervention
5 août 2009
3
Merci
Je n'ai peut-être pas compris, mais, est-ce que tu as essayé la fonction addslashes ?

voir sur php.net


InTheMix

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 86 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_InTheMix
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Dernière intervention
27 avril 2012
21
3
Merci
Salut,

mysql_real_escape_string fait ce que fait addslashes bien mieux (sécurité, etc ...)
Elle est sans doute bien plus indiquée que addslashes et tu devrais faire la correction (sans le uft8_decode)


Cordialement,


Kohntark -

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 86 internautes nous ont dit merci ce mois-ci

Commenter la réponse de kohntark
Messages postés
59
Date d'inscription
samedi 14 avril 2007
Dernière intervention
2 avril 2010
0
Merci
Salut anthony !

As-tu essayé avec htmlentities() ????

genre :

$ville = mysql_real_escape_string(htmlentities($data[6]));

J'espère que ça fonctionnera pour toi ainsi... !!!
Commenter la réponse de nanti
Messages postés
102
Date d'inscription
vendredi 18 août 2006
Dernière intervention
29 mai 2012
0
Merci
salut,
merci pour ta réponse et en effet, je pense que cela doit être l'une de ces fonction mais laquelle ?

Le résultat entré dans ma base de données et le suivant :
d'oléron

Je pense qu'il ne manque pas grand chose pour que l'affichage soit correct.
Merci beaucoup
Commenter la réponse de anthony428
Messages postés
102
Date d'inscription
vendredi 18 août 2006
Dernière intervention
29 mai 2012
0
Merci
Merci, tout à compris à mon problème. La fonction addslashes fonctionne à merveille. Je n'ai pas besoin de la fonction utf8_decode en plus, je n'ai besoin que de :

$ville = addslashes($data[6]);

Merci pour votre aide.
Commenter la réponse de anthony428
Messages postés
102
Date d'inscription
vendredi 18 août 2006
Dernière intervention
29 mai 2012
0
Merci
en effet, la fonction mysql_real_escape_string fonctionne également. Si tu me dis que cette fonction semble plus indiqué que la fonction addslashes, je te fais confiance, ça ne serait pas la première fois que tu m'aide sur ce forum.
En tout cas, merci à vous pour m'avoir aidé à solutionner mon problème.
Commenter la réponse de anthony428

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.