[php htmlentities et addslaches]

walid -  
PhP Messages postés 1770 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Afin de formatter les données d'un formulaire avant leur envoi dans une base mysql, j'effectue les opérations suivantes :


1- htmlentities : Pour interdire le code php & html
2- addslaches : pour éviter les ambiguités dus aux caractères spéciaux.

Résultat : Je m'apercois que addslaches n'a aucun effet sur une chaine ayant déjà subi htmlentities. Est ce normal?

Si oui, dois-je effectuer addslaches avant htmlentities ou je me contente de htmlentities?

D'avance Merci.
A voir également:

3 réponses

Yvan
 
Bah oui, c'est normal :)

Le mieux est d'appliquer le htmlentities seulement à l'affichage sur ta page et donc ne pas l'enregistrer dans ta base comme ça.

Et pour échapper les quotes, il est préférable d'utiliser un mysql_real_escape_string() plutôt qu'un addslashes.
http://fr3.php.net/manual/fr/function.mysql-real-escape-string.php
1
PhP Messages postés 1770 Date d'inscription   Statut Membre Dernière intervention   606
 
bsr

Non c'est plutôt au niveau de l'entête de ta page HTML qu'il faut agir

Ex

une page codé en ISO-8859-1 (le type par défaut que j'utilise pour coder en français)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html  xml:lang="fr" lang="fr" xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
Ceci est un texte accentué<br /> 
Le symbole des mails : @  <br />
Le symbole qui nous coûte cher : € !<br />
</body>
</html>



la même page codée en UTF-8 : les caractères ne sont plus affichés comme il faut

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html  xml:lang="fr" lang="fr" xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
Ceci est un texte accentué<br /> 
Le symbole des mails : @  <br />
Le symbole qui nous coûte cher : € !<br />
</body>
</html>


1
juan
 
Salut à tous.
J'ai un "soucis", je fais actuellement la mise d'un site web qui tourne sur un serveur apache sous php et je rencontre un problème concernant l'affichage des des lettres avec accents. Dois je utiliser addslaches pour cela? Sinon, quelle est la fonction qui me permettra de résoudre cela? Merci.
0