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 :

Problème d'accent sur un serveur UNIX


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Problème d'accent sur un serveur UNIX
    Salut

    J'ai un problème de gestion des accents sur un site.

    J'utilise htmlentity() pour "nettoyer" des infos de formulaire avant de les enregistrer dans une BDD. Ca marche nickel en local, mais sur le serveur, ca devient n'importe quoi (genre "é" => "Ã", etc.)

    Le serveur est sous UNIX, alors je mais ca sur son compte. Peut-etre ce n'est pas du tout le cas...

    Qqn voit : 1/ d'ou ca peut venir ? 2/ ce que je peut faire ?

    Merci d'avance

  2. #2
    Membre averti Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Points : 410
    Points
    410
    Par défaut
    slu

    je crois qu il faut faire un html_special_char lors de l affichage ...

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    a priori, htmlspecialchars ne s'occupe pas des accents. Seulement des caracteres "speciaux" du html.

    Je viens de tester sur la chaine "<testé>" et les resultats sont :
    - avec htmlspecialchars : "&lt;testé&gt;"
    - avec htmlentities :"&lt;test&eacute;&gt;" en local (nickel, c'est ce que je veux) et "&lt;test&Atilde;&copy;&gt;" sur le serveur (!!!!!)

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2005
    Messages : 147
    Points : 165
    Points
    165
    Par défaut
    on dirait que tu parses du utf8 avec htmlentities (par défaut en iso).

    une solution (mais qui pourrait cacher d'autres problèmes) :
    htmlentities("<testé>",null,"UTF-8");

    la solution (à mon sens) :
    configure bien l'environnement au niveau de l'encodage (enregistrement des sources, balise méta, AddDefaultCharset du conf d'apache,...)

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    ca marche avec htmlentities('<testé>', NULL, 'UTF-8')...

    ca veut dire que c'est le serveur qui est en utf8 c'est ca ?
    et que donc en gros il suffit que je le précise a htmlentities pour que ca passes?

    En tout cas, merci bcp.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2005
    Messages : 147
    Points : 165
    Points
    165
    Par défaut
    Citation Envoyé par geji
    ca veut dire que c'est le serveur qui est en utf8 c'est ca ?
    et que donc en gros il suffit que je le précise a htmlentities pour que ca passes?
    a priori ça serait ça, mais ça peut venir du php.ini (tu peux toujours faire une recherche de "utf-8" dans le phpinfo voir si ça apparait), du conf d'apache (essaies header("Content-Type: text/html; charset= iso8859-1"); en haut de ton script pour forcer l'envoi en iso, ou regarde simplement l'enodage des caractères envoyé par le serveur à l'aide de ton navigateur), du sgbd, ...

    là ça suffit pour htmlentities mais pour le reste ça peut te causer des bugs ou des résultats inattendus (si t'utilise des expressions régulières ou d'autres fonctions qui parsent caractère par caractère comme strlen).

    après le mieux placé pour te répondre devrait être celui qui gère le serveur

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    ok.

    Encore merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DOM] Problème d'accent sur les noms de fichier avec mon parseur
    Par ujoodha dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 06/04/2006, 21h55
  2. Problème de lettre sur nouveau serveur
    Par gobs dans le forum Langage
    Réponses: 2
    Dernier message: 19/01/2006, 23h31
  3. problème de connection sur un serveur
    Par chti_juanito dans le forum Outils
    Réponses: 1
    Dernier message: 12/01/2006, 21h35
  4. [9i] Problème de perfomance sur un serveur
    Par Débéa dans le forum Oracle
    Réponses: 3
    Dernier message: 20/09/2005, 17h23
  5. Lancement d'une commande sur un serveur Unix
    Par lper dans le forum Web & réseau
    Réponses: 2
    Dernier message: 29/07/2004, 13h58

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