Où là là je ne suis pas sûr de comprendre.
Plusieurs points posent difficulté:
1) En gros, est-ce que déjà ça c'est TOUT juste:
mysqli_real_ecape_string nettoie le code pour éviter les injections SQL.
Il met un antislash comme caractère d'échappement derrière certains
caractères comme l'apostrophe, le guillemet ou l'antislash.
Il sert lors de l'envoi de données vers une bdd. Il sert à éviter que des données malicieuses créent du désordre dans la bdd.
htmlentities lui nettoie le code pour éviter des injections xss, et principalement des injections javascript.
Il remplace certains caractères par des entités. Exemple: il remplace l'apostrophe par &8217;
Il sert lors de l'affichage sur l'écran. Il sert à éviter que le navigateur interpète du code malveillant affichant des choses indésirables à l'écran contre notre gré.
2)Ynx dit à propos de htmlentities que htmlentities sert à nettoyer contre les injection xss (ça j'ai bien compris maintenant), mais il dit aussi
on utilise htmlentities pour afficher la valeur d'un champ de formulaire
Il sert donc aux deux? Si oui, quelle est sa principale fonction parmi les deux? Et pourquoi est-ce logique qu'il serve aux deux?
3) Dans son exemple, ynx dit
htmlentities affiche la valeur '<div>' dans le champ (entités html)
Ca veut dire que c'est <div> qui apparaît à l'écran?
4) Toujours dans son exemple, ynx parle de valider à nouveau le formulaire.
Pourquoi est-ce que la première fois où on valide le formulaire et la deuxième c'est pas pareil?
5) xTG tu dis
Si ton var_dump affiche <div> c'est que la valeur est déjà traitée avec un htmlentities.
Pourtant, quand l'utilisateur tape <div> alors htmlentities transforme ça en <div> (c'est <div> qu'on a alors dans le code source, c'est juste?)
et le navigateur pour moi doit interpéter <div> puisque le SGML est à mon avis interpété par le navigateur pour afficher <div>.
Mais tu dis que non.
Et tu dis que <div> est interprété. Ca non plus je ne comprends pas. Il est interpété comment et pourquoi?
Désolé pour toutes ces questions mais je n'arrive pas encore à bien comprendre.