Page 1 sur 1
interdire le html sans interdire < >
Posté : 29 sept. 2005, 13:53
par Invité
Bonjour à tous,
dans un textarea, je souhaite interdire la saisie de code html. je pensais donc faire une regex qui empeche d'ecrire les caractères < et >, mais je me rend compte que il serait bien tout de même que ces caracteres puissent être tapés, si jamais la personne a envie d'ecrire 2 < 3 par exemple.
Comment faire ?
je viens de regarder du coté des fonctions htmlspecialchars() et htmlentities() mais je ne comprend pas bien comment m'en servir ? la seule solution possible se trouve dans ces fonctions ?
Posté : 29 sept. 2005, 14:32
par Invité
htmlentities est plus complet que htmlspecialchars.
htmlspecialchars ne remplacera que ça:
Les remplacements effectués sont :
*
"&" (et commercial) devient "&"
*
""" (guillemets doubles) devient """ lorsque ENT_NOQUOTES n'est pas utilisé.
*
"'" (single quote) devient "'" uniquement lorsque ENT_QUOTES est utilisé.
*
"<" (inférieur à) devient "<"
*
">" (supérieur à) devient ">"
htmlentities quand à lui remplacera les mêmes signes plus tous les autres qui ont une correspondance en entitée html, c'est à dire:
http://www.commentcamarche.net/html/htmlcarac.php3
ensuite tu as également deux autres options qui permettent de convertir guillemets simples et doubles ou non(ENT_COMPAT,...) et de choisir ton charset.
http://fr2.php.net/manual/fr/function.htmlentities.php
http://fr2.php.net/manual/fr/function.h ... lchars.php
Posté : 29 sept. 2005, 14:43
par VaN
dsl, c'etait moi le post en haut, j'avais oublié de me log. en fait j'y comprends pas beaucoup mieux, malgré toutes ces informations.
Il suffit que sur le champ texte que je récupere, j'applique la fonction html_specialchars() ? les caracteres html seront "traduits" ? j'aurais donc dans ma base de données des chose du genre & ? comment re-afficher le caractere normal en sortie ?
Posté : 29 sept. 2005, 15:00
par Truc
j'aurais donc dans ma base de données des chose du genre & ?
tu n'a qu'a faire des test pour voir ce que ça donne
comment re-afficher le caractere normal en sortie ?
ça se fait tout seul, vive le HTML
Posté : 29 sept. 2005, 15:05
par Invité
et je te rajouterais que si les données dans ta base doivent servir un jour pour être imprimées, tu devras faire appel à cette fonction qui réalise l'opération inverse:
http://fr.php.net/manual/fr/function.ht ... decode.php
donc même système:
$nv_chaine=html_entity_decode($_chaine_a_decoder);