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 :

stockage texte/balise html [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Points : 186
    Points
    186
    Par défaut stockage texte/balise html
    Bonjour,

    Je souhaite entrée dans un champ texte mysql du code html.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <b>mon</b> exemple<br/>merci
    je ne parviens pas à l'interpréter dans ma page !

    mon exemple
    merci

    Encore un classique je pense
    Windows 7, 64 bit
    Perl 5.12, ActivePerl
    Python 3.2, ActivePython ( NOVICE ! )

  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 n'utiliserai pas des fonctions comme htmlspecialchars() ou htmlentities() ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Points : 186
    Points
    186
    Par défaut
    Hello merci pour ta réponse.

    j'ai ré-essayé les deux...

    mais non.
    Windows 7, 64 bit
    Perl 5.12, ActivePerl
    Python 3.2, ActivePython ( NOVICE ! )

  4. #4
    Membre du Club
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2006
    Messages : 44
    Points : 53
    Points
    53
    Par défaut
    Tu transformes le code HTML avant insertion dans la base avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    htmlentities($mon_texte_html, ENT_QUOTES)
    et pour afficher les données depuis la base de données tu décodes le texte avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    html_entity_decode($mon_texte_html_encode_provenant_de_la_base)

  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
    Quand je disais "tu n'utiliserai pas ? ", ça voulait dire qu'il ne faut pas le faire, ni encodage, ni decodage.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    @Callapa : en fait non. La base de donnée se moque éperdument du fait que ton champ contient du HTML. Là où il faut faire gaffe, c'est si tu stockes du SQL dedans.
    Il faut aussi faire attention au code HTML lorsqu'on l'affiche : ce n'est pas une bonne idée de laisser s'exécuter ce genre de choses :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script type="text/javascript">
    while(true) {
        alert('pwned!');   
    }
    </script>
    @PadawanInPerl : On peut voir le code qui enregistre et le code qui affiche ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Membre habitué Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Points : 186
    Points
    186
    Par défaut
    Merci pour vos réponses !

    il faut savoir... en fait ... que

    j'entre le html à la main dans phpmyadmin.

    je récupère via ajax puis l'affiche dans un div.

    ça peut vous paraitre bizarre... mais je vois pas trop comment mettre mon contenu en forme si je le (le contenu) rentre en bloque dans la base.

    mon ajax envoi au fichier php qui me fait un echo et re-ajax qui affiche le contenu.
    Windows 7, 64 bit
    Perl 5.12, ActivePerl
    Python 3.2, ActivePython ( NOVICE ! )

  8. #8
    Membre habitué Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Points : 186
    Points
    186
    Par défaut
    donc le code html est juste et sans danger vu qu'il n'y a que moi qui l'entre.
    Windows 7, 64 bit
    Perl 5.12, ActivePerl
    Python 3.2, ActivePython ( NOVICE ! )

  9. #9
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    On peut voir le code PHP qui lit la base ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  10. #10
    Membre habitué Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Points : 186
    Points
    186
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    $absselect = htmlentities($_GET['motif']);
     
    $db=new db();
    $req="SELECT `message` FROM `table_abs` WHERE `valeur`='$absselect' ";
    $db->query($req);
     
    if($db->result)
    {
    	foreach ($db->result as $mess)
    	{
    		$yeah = $mess['message'];
    	}
    }
    //echo htmlspecialchars($yeah);
    echo $yeah;
    // $a = htmlentities($yeah);
    // $b = html_entity_decode($a);
    // echo $b;
    Windows 7, 64 bit
    Perl 5.12, ActivePerl
    Python 3.2, ActivePython ( NOVICE ! )

  11. #11
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Je ne vois pas ce qui peut poser problème au niveau de la récupération du contenu HTML de ton champ. Peut-être que le problème est au niveau de l'AJAX. Tu as vérifié le contenu de la réponse à ta question, dans la console de ton navigateur ?

    Au passage, tu as une magnifique injection SQL potentielle : htmlentities n'est pas du tout fait pour protéger la base de données.
    Il faut utiliser quelque chose comme mysql_real_escape_string, mysqli_real_escape_string() ou PDO::quote() en fonction de l'API qui tu utilises, ou bien des requêtes préparées.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  12. #12
    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
    On supposer que si les recherches sont faites avec des entités HTML, les données ont des entités HTML.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre habitué Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Points : 186
    Points
    186
    Par défaut
    @celira

    j'entre à la main dans la bdd les balises... il n'y a donc normalement pas de problème.

    j'ai pu interpréter les retours lignes, sans balises, en les faisant directement dans la bdd avec la touche Enter.
    côté traitement, je suis passé par un nl2br.

    par contre, pour le gras, l'italique, etc... ça passe pas.
    Windows 7, 64 bit
    Perl 5.12, ActivePerl
    Python 3.2, ActivePython ( NOVICE ! )

  14. #14
    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 obtiens quoi dans ta source HTML ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  15. #15
    Membre habitué Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Points : 186
    Points
    186
    Par défaut
    ok pour ce que j'avais à faire :

    écrire dans la db comme au clavier pour les retours lignes. pas de mise en forme mais les retours lignes c'est déjà bien.
    Windows 7, 64 bit
    Perl 5.12, ActivePerl
    Python 3.2, ActivePython ( NOVICE ! )

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

Discussions similaires

  1. Supprimer les balises HTML d'un texte
    Par bellig dans le forum SQL
    Réponses: 3
    Dernier message: 04/01/2008, 17h00
  2. [RegEx] Extraire un texte entres balises html ?
    Par booraq dans le forum Langage
    Réponses: 2
    Dernier message: 01/07/2007, 15h56
  3. Comment faire une balise <html:text> avec valeur dynamique
    Par chriscoolletoubibe dans le forum Struts 1
    Réponses: 13
    Dernier message: 14/05/2007, 22h13
  4. Insertion de balises html dans zone de texte
    Par Mcfly123 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 02/05/2007, 10h42
  5. Réponses: 1
    Dernier message: 06/06/2006, 09h47

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