Les apostrophe et les guillemets s'affichent mal [Résolu/Fermé]

Signaler
Messages postés
146
Date d'inscription
vendredi 1 août 2014
Statut
Membre
Dernière intervention
5 novembre 2018
-
Messages postés
146
Date d'inscription
vendredi 1 août 2014
Statut
Membre
Dernière intervention
5 novembre 2018
-
Salut à tous j'ai un site et une base de données en UTF-8. Mais je viens de rencontrer un problème, lorsque je rentre un texte avec des ' ou des " dans ma base de données il ne s'affiche pas correctement à la place j'ai des ' ou des 5,5' . J'ai supprimé les ENT_QUOTES UTF-8 pour résoudre le problème des ' et là c'est bon mais les guillemets ne marchent toujours pas et maintenant j'ai des " . Avez-vous des solutions?
Cordialement Airox

2 réponses

Messages postés
4761
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
23 octobre 2020
1 151
'lut, pourrais-tu nous montrer ton code s'il-te-plait? Du moins celui qui fait les requêtes SQL. Au vu du
5,5'
que tu peux apercevoir, je suspecte que ton code laisse place aux injections SQL: tu peux casser une requête ou exécuter du code depuis le(s) champ(s) de texte sur les pages, et ce
5,5'
ressemble fort à un paramètre de
LIMIT
.
Si tu utilises les fonctions commençant par
mysql_
, tu est bon pour refaire tout ton code SQL avec PDO (ou mysqli): l'extension MySQL est obsolète. Si le site est déjà en ligne, on peux tenter une correction "d'urgence"... avant que tu ne refasses quand même le site avec PDO (ou mysqli...).
Messages postés
4761
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
23 octobre 2020
1 151 >
Messages postés
146
Date d'inscription
vendredi 1 août 2014
Statut
Membre
Dernière intervention
5 novembre 2018

Je constate que tu passes tes champs au
htmlspecialchars
avant l'insertion en base, le ferais-tu après aussi par hasard? En principe, dans la base on insère les données telles quelles, et c'est seulement lors de l'affichage qu'on utilise
htmlspecialchars
.
Messages postés
146
Date d'inscription
vendredi 1 août 2014
Statut
Membre
Dernière intervention
5 novembre 2018
8
Oui c'est bon j'ai réparé le soucis tu avais raison mais c'est mieux de mettre htmlspecialchars avant l'insertion ou lors de l'affichage ? C'est quoi la différence entre avant ou après?
Messages postés
4761
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
23 octobre 2020
1 151 >
Messages postés
146
Date d'inscription
vendredi 1 août 2014
Statut
Membre
Dernière intervention
5 novembre 2018

En somme, le mettre avant ou après l'insertion ne change rien à part la manière dont est enregistrée ta chaine de caractères: si tu le met avant, les caractères transformés en
"
par ex. seront mis sous cette forme dans la base, et dans l'autre cas il y aura la phrase originale.
En ce qui me concerne je le mettrais après, mais c'est discutable selon les cas.
Messages postés
2370
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
10 mars 2020
433
Dans l'idéal on utilise htmlspecialchars uniquement à l'affichage dans un document html.
Si tu veux utiliser les données pour les afficher dans un autre format (json, pdf, etc...) l'échappement des caractères de ne sera pas avec htmlspecialchars mais va dépendre du format d'affichage.
Messages postés
146
Date d'inscription
vendredi 1 août 2014
Statut
Membre
Dernière intervention
5 novembre 2018
8
D'accord merci je ne reproduirai pas l'erreur :)
Messages postés
146
Date d'inscription
vendredi 1 août 2014
Statut
Membre
Dernière intervention
5 novembre 2018
8
Personne n'a de solution?