IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

htmlspecialchars et ", ENT_QUOTES,'ISO-8859-1'" [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut htmlspecialchars et ", ENT_QUOTES,'ISO-8859-1'"
    Bonjour,

    Je me retrouve dans l'obligation de passer à php 5.4 ou 5.5 du fait de mon hébergeur. Malheureusement, je me retrouve avec un souci sur l'encodage lorsque mes données passent par la fonction htmlspecialchars(). Si je rajoute ", ENT_QUOTES,'ISO-8859-1'" tout redevient normal. Le souci si j'ose dire c'est que j'en ai un peu partout des htmlspecialchars() et il faut que je fasse le tour de toutes mes pages.

    Il serait sans doute temps de remettre à plat l'encodage mais j'ai une particularité. J'ai des tables en utf8 (celles d'un forum) et en iso (celles de mon site développé par moi).

    Est-ce que quelqu'un pourrait me guider sur les choses à faire pour que tout rentre dans l'ordre ?

    Merci infiniment.

    heretik25

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu le dis toi même : il faut mettre à plat tes encodage.
    Convertit tout vers UTF8.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Hello et merci pour ta réponse sabotage,

    Est-ce que cela risque de générer des problèmes ? Puis-je le faire directement via phpmyadmin ou dois-je passer par des requêtes ?

  4. #4
    Expert confirmé
    Avatar de TiranusKBX
    Homme Profil pro
    Développeur C, C++, C#, Python, PHP, HTML, JS, Laravel, Vue.js
    Inscrit en
    Avril 2013
    Messages
    1 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur C, C++, C#, Python, PHP, HTML, JS, Laravel, Vue.js
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 476
    Points : 4 805
    Points
    4 805
    Billets dans le blog
    6
    Par défaut
    PHPMyAdmin ne te feras jamais la conversion
    ce que je vois que tu peut faire c'est quand tu à exporté tes données tu ouvre le fichier avec Notepad++ et tu fait la conversion en UTF-8 et ton problème seras réglé
    Rien, je n'ai plus rien de pertinent à ajouter

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Oui enfin pour être précis :
    - faire un dump SQL de la table
    - renommer la table comme sauvegarde
    - convertir le dump
    - importer le dump converti
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Sauf que j'ai une bonne trentaine de tables :S

  7. #7
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Ca marche aussi avec un dump inital qui concerne plusieurs tables.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  8. #8
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    La conversion du dump s'effectue lors de l'import de celui-ci ?

  9. #9
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Non, c'est cette méthode là qu'il faut appliquer pour convertir le dump :

    c'est quand tu à exporté tes données tu ouvre le fichier avec Notepad++ et tu fait la conversion en UTF-8 et ton problème seras réglé
    (Attention à bien faire les sauegardes nécessaires, cette méthode n'est pas infaillible).
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  10. #10
    Expert confirmé
    Avatar de TiranusKBX
    Homme Profil pro
    Développeur C, C++, C#, Python, PHP, HTML, JS, Laravel, Vue.js
    Inscrit en
    Avril 2013
    Messages
    1 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur C, C++, C#, Python, PHP, HTML, JS, Laravel, Vue.js
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 476
    Points : 4 805
    Points
    4 805
    Billets dans le blog
    6
    Par défaut
    la taille limite de fichier que peut charger notepad++ est lié à ta ram
    en gros si ça dépasse de la moitié de ta ram total ça peut planter sinon ça passe
    Rien, je n'ai plus rien de pertinent à ajouter

  11. #11
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Ok, je test sur une base test

  12. #12
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    J'ai remonté la base après l'avoir réencodée via notepad++, j'ai changé la connexion puis si j'enlève "ENT_QUOTES,'ISO-8859-1'", le texte disparait et si je le laisse j'ai des caractères spéciaux typique aux problèmes d'encodages qui apparaissent;

    eX / R�paration d'une crevaison de la chambre � air


    P.S : J'ai modifié mon entête (je ne sais pas si ça joue):
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Content-Type" content="text/html; charset=UTF8" />

  13. #13
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Ok, a priori ça à l'air d'être bon. Il te faut juste configurer ton site pour afficher de l'UTF-8 maintenant, en suivant cet excellent tutoriel par exemple.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  14. #14
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    J'ai donc ajouté dans mon header

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    Puis dans mon htaccess

    AddDefaultCharset utf-8
    Puis dans le fichier de ma connexion

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bdd->exec("set names utf8");
    mais il faut nécessairement que je ré-encode les centaines de fichiers de mon site ? En effet, le texte en dur dans les fichiers posent souci

    Ex : Posté le devient Post� le

    Merci

  15. #15
    Expert confirmé
    Avatar de TiranusKBX
    Homme Profil pro
    Développeur C, C++, C#, Python, PHP, HTML, JS, Laravel, Vue.js
    Inscrit en
    Avril 2013
    Messages
    1 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur C, C++, C#, Python, PHP, HTML, JS, Laravel, Vue.js
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 476
    Points : 4 805
    Points
    4 805
    Billets dans le blog
    6
    Par défaut
    une des raisons pour laquelle je fait soit base et code en ansi soit base et code en utf-8
    il doit bien exister des programmes sous linux qui te font du transcodage de fichier à la chaîne mais je ne les connais pas
    Rien, je n'ai plus rien de pertinent à ajouter

  16. #16
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    J'ai fais les quelques fichiers importants à la main, ça va plutôt vite et il n'y en pas tant que ça en réalité.

    Merci à tous pour vos conseils. L'ensemble du site est en UTF8 (sauf fichiers encore non décelés).

    @bientôt

  17. #17
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Donc c'est bon, l'affichage est correct ?
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  18. #18
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Oui, tout est bon. j'ai enlevé les utf8_decode() et utf8_encode(). En ré-encodant les fichiers clés ça semble parfait. Encore merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 15
    Dernier message: 24/02/2006, 14h17
  2. caractères ISO-8859-1 en console sur XP
    Par Thierry Chappuis dans le forum Windows
    Réponses: 3
    Dernier message: 14/12/2005, 13h13
  3. [UBUNTU] Pages Web Iso-8859-15
    Par troumad dans le forum Ubuntu
    Réponses: 6
    Dernier message: 03/06/2005, 16h11
  4. Convertir une chaine UTF8 en ISO-8859-1
    Par eods dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 26/08/2004, 16h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo