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 :

Encodage Décodage des données Mysql > HTML MySql > pdf [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 185
    Par défaut Encodage Décodage des données Mysql > HTML MySql > pdf
    Bonjour à toutes et tous,
    Je stocke des 'textarea' sur mysql grâce à CKEditor. Pour lire les données stockées dans firefox un petit :
    echo htmlspecialchars_decode($string); fonctionne parfaitement.
    Puis lorsque je veux éditer grâce à FPDF j'obtiens quelque chose comme ça :
    <p>Local d'environ 900 m2 de plain pied dont 250 m2 de hangar.</p><p>
    Je voudrais que FPDF renvoie :
    Local d'environ 900 m2 de plain pied dont 250 m2 de hangar.
    Je pensais que html_entity_decode () ferait l'affaire ... sans succès
    J'ai ensuite tester d'autres solutions inspirées de php.net sans plus de succès.
    Qu'en pensez vous ? D'avance merci de votre aide.

  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
    Par défaut
    Déjà tu devrais désactiver la conversion en entités HTML par CKEditor.
    Ensuite, si tu es obligé de decoder pour afficher correctement dans une page HTML, c'est a priori que tu sur-encodes par dessus CKEditor qui fait déjà l'encodage : par définition une entité HTML s'affiche correctement dans un navigateur sans avoir besoin d'être décodée.
    Il faut donc retirer ces deux conversions.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 185
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Déjà tu devrais désactiver la conversion en entités HTML par CKEditor.
    Ensuite, si tu es obligé de decoder pour afficher correctement dans une page HTML, c'est a priori que tu sur-encodes par dessus CKEditor qui fait déjà l'encodage : par définition une entité HTML s'affiche correctement dans un navigateur sans avoir besoin d'être décodée.
    Il faut donc retirer ces deux conversions.
    Bonjour Sabotage et merci de ta réponse,
    En fait j'ai utilisé (pour la première fois) CKEditor dans la version 'brute' proposée sur leur site et à laquelle je n'ai apporté aucune modification. En recherchant sur les forums, j'ai vu que de nombreux internautes étaient confrontés au même problème que moi, à savoir que sans apporter de modifications à la configuration d'origine, l'enregistrement dans MySql ne pose pas de problème, par contre il faut "décoder" les caractères pour obtenir un affichage identique à la saisie sur la page d'état HTML.

    C'est ce qui est enregistrer par défaut par CKEditor que je n'arrive pas à afficher correctement en générant un pdf avec FPDF. Pour les autres champs de la base de données enregistrés sans mise en forme, un simple utf8_decode($string) suffit. Si j'inhibe la mise en forme de mon texte stocké dans MySQL, je perds donc à priori le bénéfice de l'utilisation de CKEditor AUSSI pour l'affichage en HTML, ce que je souhaite(rai) éviter. Il doit sûrement exister une solution (peut être un des nombreux add-ons de CKEditor ou un internaute qui se sera déjà penché sur la question ...)

  4. #4
    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
    Par défaut
    Je ne parle pas de changer la mise en forme, seulement de désactiver l'utilisation d'entités HTML dans CKEditor.
    De plus, ce n'est pas CKEditor qui fait l'insertion dans la base de données ; est-ce que tu n'aurais pas ajouter un htmlentites() à ce niveau ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 185
    Par défaut yesssssssssssss :)
    Merci Monsieur SABOTAGE effectivement j'avais un "htmlspecialchars()" préalable à l'enregistrement qui gênait l'affichage. Donc tout fonctionne en le supprimant.Je marque donc le sujet en résolu...
    Mais j'ai une autre interrogation : quid de la sécurité dans ce cas ? rien n'empêche à priori un individu malveillant d'envoyer un script par exemple et le champs de la base devient vulnérable, non ? Comment faut il traiter l'insertion puis l'affichage avec CKE pour éviter les injections et autres joyeusetés du même genre ? existe t il un tutoriel à votre connaissance ?

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

Discussions similaires

  1. [MySQL] S'assurer du bon enregistrement des données dans BDD mysql
    Par lilly91 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/12/2009, 14h14
  2. Réponses: 4
    Dernier message: 14/05/2009, 17h35
  3. authentification base de donnée perl/html/mysql
    Par LoLoBix dans le forum Web
    Réponses: 2
    Dernier message: 06/03/2009, 09h52
  4. Encodage UTF8 des données de la base MYSQL
    Par arnaudperfect dans le forum Installation
    Réponses: 6
    Dernier message: 15/01/2008, 23h10
  5. [WD55] Migration des données HF vers MySQL ou Access
    Par developper2006 dans le forum WinDev
    Réponses: 1
    Dernier message: 21/02/2007, 13h31

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