Bonjour,
Il y a quelque chose que je ne comprends pas : puisque je fais un enregistrement propre (filtrage, échappement du code, protection injection SQL, etc.) dans mon BDD, pourquoi dois-je utiliser une autre fonction pour l'affichage de cet enregistrement qui est propre ?
Utiliser htmlspecialchars() ou htmlentities(), c'est pratique pour éviter des données directement fournies par les utilisateurs . Mais moi, je les prends par intermédiaire de mon BDD...
Et si je dois utiliser htmlspecialchars() ou htmlentities() à l'affichage de données, je peux avoir des mauvaises surprises :
Exemple : Utilisateur entre dans input : [Je m'appelle André]
je les enregistre dans ma BDD : [Je m& # 39;appelle André]
Lorsque je l'affiche dans un autre écran : [Je m'appelle Andrà ©]
ou : [Je m& # 39;appelle Andr à ©] ou bien [Je m& # 39;appelle André]
Même si j'utilise :
header('Content-Type: text/html; charset=UTF-8');
ou
header('Content-Type: text/html; charset=iso-8859-15');
ou
header('Content-Type: text/html; charset=iso-8859-1');
avec toutes les possibilités :
$prenom_engregistre= htmlspecialchars($row[0], ENT_QUOTES);
ou
$prenom_engregistre= htmlspecialchars($row[0]);
ou
$prenom_engregistre= htmlentities($row[0], ENT_QUOTES);
ou
$prenom_engregistre= htmlentities($row[0]);
ou
$prenom_engregistre= htmlentities($row[0], ENT_SUBSTITUTE);
ou
$prenom_engregistre= htmlentities($row[0], ENT_DISALLOWED);
Que vous dites dans ce cas là ?
Partager