Je travaille sur un formulaire intitulé "form_a.php", dont je veux réafficher les données dans la page "form_b.php" après analyse par le fichier "form_an.php".
J'ai lu dans la documentation Php que la fonction htmlentities permettait de "nettoyer" les zones de texte, et éviter l'insertion de codes malicieux.
Première question : ai-je bien compris l'intérêt de htmlentities ?
Ainsi, par exemple, pour un champ prénom, j'utilise le code suivant dans "form_an.php" :
$_POST['prenom'] = htmlentities($_POST['prenom']);
Je transforme ensuite ma variable $_POST en variable $_SESSION et, miracle, le prénom s'affiche correctement dans ma page form_b.php.Seulement voilà... Htmlentities fonctionne et transforme (évidemment !) en caractères spéciaux mes "é", "ç"... Or, je ne veux pas de ces caractères spéciaux...
En effet, après m'être battu longuement avec MySql, j'ai renoncé à coder en utf-8 pour me résoudre à utiliser un codage avec un charset 8859-1. J'ai décidé que les caractères spéciaux usuels seraient saisis au clavier.
Aussi, à l'affichage du code source de la page form_b.php, je me retrouve
avec des caractères spéciaux non codés et d'autres codés par htmlentities, et ça ne me plait guère.
D'où ma deuxième question. Est-il licite d'utiliser la fonction html_entity_decode juste après htmlentities ?
Ma syntaxe serait la suivante :
$_POST['prenom'] = htmlentities($_POST['prenom']);
$_POST['prenom'] = html_entity_decode($_POST['prenom']);
En d'autres termes, puis-je imaginer que Php "nettoye" mon code avec htmlentities et le laisse "propre" en le recodant ???Merci mille fois pour vos précieux conseils.
Cordialement,
Paul