Bonjour,
Je souhaite entrée dans un champ texte mysql du code html.
je ne parviens pas à l'interpréter dans ma page ! :calim2:Code:<b>mon</b> exemple<br/>merci
mon exemple
merci
Encore un classique je pense :oops:
Version imprimable
Bonjour,
Je souhaite entrée dans un champ texte mysql du code html.
je ne parviens pas à l'interpréter dans ma page ! :calim2:Code:<b>mon</b> exemple<br/>merci
mon exemple
merci
Encore un classique je pense :oops:
Tu n'utiliserai pas des fonctions comme htmlspecialchars() ou htmlentities() ?
Hello merci pour ta réponse.
j'ai ré-essayé les deux...
mais non. :aie:
Tu transformes le code HTML avant insertion dans la base avec
et pour afficher les données depuis la base de données tu décodes le texte avecCode:htmlentities($mon_texte_html, ENT_QUOTES)
Code:html_entity_decode($mon_texte_html_encode_provenant_de_la_base)
Quand je disais "tu n'utiliserai pas ? ", ça voulait dire qu'il ne faut pas le faire, ni encodage, ni decodage.
@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 :
@PadawanInPerl : On peut voir le code qui enregistre et le code qui affiche ?Code:
1
2
3
4
5 <script type="text/javascript"> while(true) { alert('pwned!'); } </script>
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. :roll:
mon ajax envoi au fichier php qui me fait un echo et re-ajax qui affiche le contenu.
donc le code html est juste et sans danger vu qu'il n'y a que moi qui l'entre.
On peut voir le code PHP qui lit la base ?
Code:
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;
:koi: 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.
On supposer que si les recherches sont faites avec des entités HTML, les données ont des entités HTML.
@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.
Tu obtiens quoi dans ta source HTML ?
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.