2009-08-22 11 views
2

Je poste un formulaire avec un textarea dedans.HTML DOM Validator - PHP ou JavaScript

Je permets l'affichage du code HTML.

Maintenant, je souhaite vérifier si l'utilisateur a fermé les balises qu'il a mis dans le code HTML qu'il a posté ... quand j'affiche ce code HTML, les balises brisées comme les divs et les tables gâchent l'affichage de la page entière ... un moyen de vérifier l'utilisation correcte des tags en php ou javascript?

Des pointeurs ou de l'aide seraient appréciés.

Merci

Répondre

2

Vous pouvez jeter un oeil à un outil PHP appelé HTMLPurifier - il y a un demo page disponible, si vous voulez vérifier rapidement ce qu'il peut faire.

Il faut du "type de" HTML en entrée, et donne du HTML bien formé en tant que sortie; De cette façon, vous ne forcez pas vos utilisateurs à entrer du HTML bien formé, mais vous pouvez "corriger" ce qu'ils ont tapé.

Une autre bonne chose est, vous pouvez spécifier quels balises et attributs sont autorisés; ce qui est bon pour la sécurité aussi:

  • par exemple, vous pouvez autoriser <p> et <strong> balises, mais pas <script>. Vous pouvez également autoriser <a> + href; mais pas <a> + onclick


Par exemple, voici quelques HTML non bien formé, vous pouvez lui donner:

<p>this is a <strong>test</p> 
<script type="text/javascript">alert('glop');</script> 
<p>And this is another <em>te<strong>st</em></strong></p> 

Et voici le code HTML bien formé/sécurisé donné que sortie:

<p>this is a <strong>test</strong></p> 
<p>And this is another <em>te<strong>st</strong></em></p> 

Qu'est-ce qui a changé?

  • l'étiquette <strong> au premier alinéa a été fermé automatiquement
  • la balise <script> et son contenu ont été enlevés
  • l'ordre de la fermeture <em> et <strong> balises dans le deuxième alinéa a été corrigé.

Ceci était juste un exemple rapide, bien sûr - j'espère que cela a aidé.

+0

merci beaucoup ... – foxybagga

0

Je ne sais pas exactement ce que vous essayez d'accomplir. Si vous êtes à la recherche d'un éditeur de texte enrichi, essayez l'une des solutions les plus matures disponibles au lieu d'essayer de réinventer la roue/

http://www.queness.com/post/212/10-jquery-and-non-jquery-javascript-rich-text-editors

Vous aurez besoin des expressions régulières pour vérifier les balises fermées. C'est un peu compliqué pour quelqu'un qui ne connaît pas regex.

Utilisez cette recherche comme point de départ: http://www.google.com.kw/search?q=regex+html+tags