IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Sécurité] Htmlentities et encodage des caractères


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 25
    Points : 14
    Points
    14
    Par défaut [Sécurité] Htmlentities et encodage des caractères
    Bonjour mon problème est le suivante :
    dans le cadre du développement d'un formulaire d'inscription, j'ai écrit deux script :
    - l'un pour le formulaire
    - l'autre pour la validation du formulaire

    Lors de la validation du formulaire, j'amasse dans une variable de type chaine de caractère, les messages d'erreurs à afficher (s'il y en a) sur le formulaire.
    Dans un premier temps, l'affichage des erreurs m'a permis de constater qu'il était nécessaire d'échapper l'ensemble des caractères spéciaux (contenus dans le messages d'erreur) par leur équivalent en HTML.

    J'ai donc utilisé la fonction htmlentities(). Celle-ci n'a pas fonctionner : sous IE les caractères affichés sont de ce genre : é
    Après lecture de quelques forum, j'ai spécifier dans la fonction htmlentities() que l'encodage des caractères doit etre de l'UTF-8.

    (Rmq : la balise suivante est présente au debut de chaque page :
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> )

    Le résultat guère mieux : aucun caractère spécial n'est affiché.
    Je ne comprend donc pas ce que je doit faire, mise à part de faire ma propre fonction de remplacement.
    De plus, le comportement d'IE et de Firefox sont complètement différent.
    (parfois il faut un refresh du navigateur pour que ca marche....bizarre)

    VOila, j'avoue que je suis un peu perdu
    Merci d'avance pour vos réponses

  2. #2
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    hmmm, pour les quotes utilises mysql_real_escape_string()

    quant aux caractères spéciaux, pas besoin de les modifier lors de l'insertion dans la base de données. Assures-toi que tu as le même jeu de caractères entre les différents acteurs de ton développement, CAD ton éditeur, ton entête HTTP, et le charset de MySQL (interclassement)

    [edit]si tu décris bien le charset à utiliser dans ton entête HTTP, IE comme Firefox sont capables de le savoir et d'adapter leur affichage en fonction de celui-ci... [/edit]

Discussions similaires

  1. Réponses: 15
    Dernier message: 24/02/2006, 15h17
  2. Encodage des pièces jointes d'un mail : toujours base64 ?
    Par Michaël dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 15/10/2005, 13h34
  3. [Eclipse 2.1] Encodage des fichiers pour un projet
    Par _-Sky-_ dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 26/05/2005, 23h26
  4. Réponses: 2
    Dernier message: 05/10/2004, 23h43
  5. [XML] encodage des accents
    Par matonfire dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 05/05/2004, 16h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo