Précédent Suivant

Les Formulaires

Htmlentites() et htmlspecialchars()

 

Ces fonctions jouent un rôle important dans la traduction de certains caractères destinés à être affichés par le navigateur. La première convertit la plupart des diacritiques ou autrement dit caractères spéciaux en entités de caractères équivalentes. Si nous disons « la plupart », c’est que certains caractères tels que € ou « oe «ne sont pas traduits. La seconde convertit les caractères ayant un sens particulier dans les commandes HTML :

Le ET commercial (&) devient &.

Les chevrons ou balises (< et >) deviennent respectivement $lt ; et $gt ;.

Le guillemet (" ) devient &quot ; si le second argument ne vaut pas ENT_QUOTES.

Exemple

<?php
   
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
   
ou
   
$new = htmlentities("<a href='test'>Test</a>", ENT_QUOTES);
?>

NB : Si nous n’utilisons pas cette dernière fonction lorsque l’on récupère les éléments saisis dans les formulaires nous avons de forte chance d’avoir un comportement inattendu.

 

Exercice : (Voir annexe Les Formulaires Exercice 8).

Reprendre le formulaire de l’exercice 6 (Figure 4), et à l’aide de la fonction htmlentities() ou htmlspecialchars, supprimez les problèmes relatifs aux saisies des balise HTML dans les champs.