Htmlentities ou htmlspecialchars
Résolu/Fermé8 réponses
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
26 janv. 2008 à 14:01
26 janv. 2008 à 14:01
salut,
difficile de dire mieux que le manuel PHP.
pour htmlspecialchars :
Certains caractères ont des significations spéciales en HTML, et doivent être remplacés par des entités HTML pour être affichés. htmlspecialchars() remplace tous ces caractères par leur équivalent dans la chaîne string . Cette conversion est très pratique pour la programmation web. Si vous devez remplacer tous les caractères, utilisez plutôt htmlentities() à la place.
pour htmlentities:
htmlentities est identique à la fonction htmlspecialchars(), sauf que tous les caractères qui ont des équivalents en entités HTML sont effectivement traduits.
donc, 'htmlspecialchars()' convertit les caractères :
• "&" (et commercial) devient "&"
• """ (guillemets doubles) devient """ lorsque ENT_NOQUOTES n'est pas utilisée.
• "'" (single quote) devient "'" uniquement lorsque ENT_QUOTES est utilisée.
• "<" (inférieur à) devient "<"
• ">" (supérieur à) devient ">"
alors que 'htmlentities()' convertit tous les caractères comme 'à', 'é', 'è', etc…
htmlspecialchars
htmlentities
difficile de dire mieux que le manuel PHP.
pour htmlspecialchars :
Certains caractères ont des significations spéciales en HTML, et doivent être remplacés par des entités HTML pour être affichés. htmlspecialchars() remplace tous ces caractères par leur équivalent dans la chaîne string . Cette conversion est très pratique pour la programmation web. Si vous devez remplacer tous les caractères, utilisez plutôt htmlentities() à la place.
pour htmlentities:
htmlentities est identique à la fonction htmlspecialchars(), sauf que tous les caractères qui ont des équivalents en entités HTML sont effectivement traduits.
donc, 'htmlspecialchars()' convertit les caractères :
• "&" (et commercial) devient "&"
• """ (guillemets doubles) devient """ lorsque ENT_NOQUOTES n'est pas utilisée.
• "'" (single quote) devient "'" uniquement lorsque ENT_QUOTES est utilisée.
• "<" (inférieur à) devient "<"
• ">" (supérieur à) devient ">"
alors que 'htmlentities()' convertit tous les caractères comme 'à', 'é', 'è', etc…
htmlspecialchars
htmlentities
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
26 janv. 2008 à 16:38
26 janv. 2008 à 16:38
htmlentities est identique à la fonction htmlspecialchars(), sauf que tous les caractères qui ont des équivalents en entités HTML sont effectivement traduits.
ça ne servirait à rien hormis faire deux opérations au lieu d'une.
'htmlentities()' fait déjà le boulot de 'htmlspecialchars()' !!!
et pour la sécurité, tout dépend de ce que tu fais avec les valeurs, envoi d'un mail, stockage dans une BDD, affichage à l'écran…
ça ne servirait à rien hormis faire deux opérations au lieu d'une.
'htmlentities()' fait déjà le boulot de 'htmlspecialchars()' !!!
et pour la sécurité, tout dépend de ce que tu fais avec les valeurs, envoi d'un mail, stockage dans une BDD, affichage à l'écran…
merci pour ta reponse, dc en fait tout depend de si j'accepte dans mon champ de texte les caracteres speciaux qui ont des equivalents html ou pas ?
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
26 janv. 2008 à 14:53
26 janv. 2008 à 14:53
tout dépend en gros de si tu veux transformer les caractères accentués ou pas.
de toute façon tu protèges les caractères qui ont une signification particulière en HTML : esperluettes, quotes, ouvertures et fermetures de balises.
de toute façon tu protèges les caractères qui ont une signification particulière en HTML : esperluettes, quotes, ouvertures et fermetures de balises.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
et si je fais un htmlentites(htmlspecialchars( )); ?? comme ca il n'y aura pas de soucis de securité ??
karikikou
Messages postés
84
Date d'inscription
dimanche 7 décembre 2008
Statut
Membre
Dernière intervention
6 juillet 2011
1
1 oct. 2009 à 10:31
1 oct. 2009 à 10:31
PAr contre comment on le place dans le formulaire et avec quelle données?
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
14 nov. 2009 à 03:23
14 nov. 2009 à 03:23
salut,
et "bonjour" ou une quelconque formule de politesse, c'est en option ?
et si tu as une question plus précise, ouvre une nouvelle discussion !
et "bonjour" ou une quelconque formule de politesse, c'est en option ?
et si tu as une question plus précise, ouvre une nouvelle discussion !
Salut mais vous pourrez avoir de petites surprises quand à l'affichage de ces caractères si jamais vous décidez de le faire! des choses vraiment bizarre comme par exemple afficher "être" vous allez pas aimez croyez moi.Et ça même si vous faite mysql_query("SET NAME UTF8") donc faite un choix c'est plus simple et si c'est juste pour la sécurité htmlspecialchars fera l'affaire les deux ensemble engendre des bobos un peut désagréable