[php htmlentities et addslaches]

Fermé
walid - 7 juin 2006 à 19:18
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 - 12 juin 2008 à 22:30
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

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 lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
12 juin 2008 à 22:30
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
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