Quelle est la différence entre htmlentities() et htmlspecialchars() en PHP ?
Bonjour, collègues ! Je suis novice en PHP et j'essaie de comprendre comment afficher des données de manière sécurisée en HTML. J'ai trouvé deux fonctions : `htmlentities()` et `htmlspecialchars()`. Toutes deux, comme je l'ai compris, convertissent les caractères spéciaux en entités HTML pour éviter les attaques XSS et un affichage incorrect.
Mais je suis confus : quand utiliser laquelle ? Regardez mon code. J'ai un simple formulaire de feedback :
```php
$name = $_POST['name']; // par exemple : John "The Hacker" Doe
$comment = $_POST['comment']; // par exemple :
```
Je veux afficher ces données sur la page. Si j'utilise `htmlspecialchars()`, les caractères `<` et `>` sont convertis en `<` et `>`, et les guillemets en `"`. Mais j'ai lu que `htmlentities()` fait la même chose, plus convertit tous les caractères qui ont des entités HTML, par exemple le symbole monétaire € devient `€`.
Question : pourquoi alors avons-nous besoin de `htmlspecialchars()` si `htmlentities()` fait plus ? Y a-t-il des cas où `htmlentities()` pourrait nuire ?
No answers yet.
Connectez-vous pour laisser une réponse
Blogs