2010-05-25 24 views
0

Je l'ai utilisé wmd-editor dans mon cakephp v1.3 demande.afficher le contenu HTML de base de données avec le formatage dans ce

La config que je l'ai écrit est la suivante:

 

wmd_options = { 
      output: "HTML", 

      lineLength: 40, 

      buttons: "bold italic | link blockquote code image | ol ul heading hr", 

      autostart: true 
     }; 
 

Quand je soumets le formulaire HTML dans les WMD permis textarea est enregistré dans la base de données avec htmlentities() fait au texte alors il est décodé avec html_entity_decode() méthode automatiquement.
mais le texte est affiché comme il est notamment le codage HTML comme celui-ci

<p><strong>hello dear friends</strong></p>\n\n<pre><code>I want to make sure that everything that you type is visible clearly.\nadasfafas\n</code></pre>\n\n<blockquote>\n <p>sadgsagasdgxcbxcbxc</p>\n</blockquote>\n\n<p><em>sadfgsgasdsgasgs</em></p>\n\n<p><b><a href="http://kumu.in">this is the link</a></b></p>

S'il vous plaît me aider à résoudre ce problème

Merci

+1

Avez-vous essayé sans 'htmlentities()' et 'html_entity_decode()'? On dirait que l'entrée peut déjà être codée (par exemple, '>' devient '& gt;', ce qui affiche alors < deizel

+0

Oui, vous avez raison ... Je l'ai déjà compris ... mais face à un problème différent maintenant. :-((en remplissant le texte décodé dans l'entrée wmd pour que tout le formatage soit préservé et visible pour l'utilisateur final) En fait, j'utilise la méthode Sanitize :: clean de la classe php sanitize de gateau Ceci fait automatiquement des htmlentities à les données postées à la base de données –

Répondre

0

Puisque vous avez défini l'option que output: "HTML", est est enregistré en tant que html, cependant vous pouvez utiliser la fonction strip_tags pour supprimer les balises html du texte.

+0

et la mise en forme sera perdue alors .... Je veux rendre ce formatage avec quelques balises permises qui ne suppriment pas complètement les balises –

1

Pour la désinfection par rapport à XSS, il est généralement préférable d'enregistrer le code HTML brut dans la base de données sans modification et de le désinfecter au moment de la sortie/de l'affichage. Utilisez la bibliothèque principale Sanitize.