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 :

Conversion accents sur URL


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Points : 125
    Points
    125
    Par défaut Conversion accents sur URL
    Probleme d'accents sur un serveur en particulier

    Soit en page 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php $candidat="Ségolène";?>
    <a href="page2.php?nom=<?php echo $candidat;?>">cliquer pour page 2 </a>
    En page 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Candidat : <?php echo $_GET['nom']?>
    Voila du code qui passe sur tout les serveurs sauf un....
    Les accents de Ségolène se trouvent mal affichés... dejà recodés ds l'URL

    Cela peut-il venir des paramétrages serveur ? php.ini par exemple... ?

  2. #2
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Ou un problème de locales (UTF8 vs latin9).
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  3. #3
    Membre confirmé Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Points : 465
    Points
    465
    Par défaut
    utilise url_encode("ségolène") avant de passer le parametre au navigateur.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Points : 125
    Points
    125
    Par défaut
    Le probleme n'est pas de réécrire le script... puisqu'il fonctionne sur tous les serveurs... sauf pour un utilisateur qui me precise

    La version du php est 4.3.1 , celle de Apache 2-2.0.47 sur une distrib
    Mandrake 9.1 "Eole" et j'ai testé plusieurs configs de php.ini mais sans
    succès pour l'instant, je continue à chercher

    Uniquement lors d'un GET, les accents sont codés en utf8 visiblement ...

    De quel coté doit-il regarder ?

    Apparemment pas de problème sur un POST ...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 72
    Points : 71
    Points
    71
    Par défaut
    Pour passer un paramétre en GET, il faut toujours utiliser url_encode(), aprés, je pense que cela peux être interpreté différement selon les navigateurs, ce qui expliquerais que parfois cela fonctionne.

    Le php.ini n'est pas en cause du tout je pense.

    Sinon, as-tu pensé à indiquer l'encodage dans la page HTML ?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Points : 125
    Points
    125
    Par défaut
    Le problème est identique sur tous les navigateurs...

    Effectivement je n'ai pas utilisé de Url_encode...Mais cette appli a été installée sur des centaines de serveur sans soucis...
    Le charset par defaut ds le php.ini est latin1
    et idem en haut de page
    Pourquoi ds l'url du GET retrouve-ton de l'utf8 semble-t-il ?
    Etrange non ?

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Points : 125
    Points
    125
    Par défaut
    Peut-on affirmer que l'utilisation d'un GET nécessite OBLIGATOIREMENT l'utilisation de url_encode ?

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 72
    Points : 71
    Points
    71
    Par défaut
    A mon sens, c'est le navigateur qui encode automatiquement les caractéres spéciaux en %machin et c'est ensuite le serveur qui les interprétes. Moi j'utilise toujours url_encode dans des cas comme le tien car les navigateurs peuvent certainement l'interpréter différement (Je n'en suis pas certain mais j'ai déjà eu des problémes avec Internet Explorer et des accents dans mes liens).

    Utiliser url_encode n'est pas obligatoire, mais préférable pour que cela fonctionne correctement.

    J'ai encore deux suggestions :

    • Essaye de comparer le php.ini et httpd.conf de tes serveurs sur lesquels l'appli fonctionne afin de déceler les directives manquantes de ton serveur à probléme.
    • Vérifie que le charset du fichier HTML n'est pas l'utf8 (grâce à un éditeur de texte comme Pspad par exemple).


    En espérant que cela puisse t'aider...

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Points : 125
    Points
    125
    Par défaut
    Résolu ... ci-joint le message du propriétaire de ce serveur

    Merci de m'avoir orienté vers la solution à mon probleme de passage de
    variables dans l'url qui ne marchait qu'en utf8 : j'avais installé (puis
    oublié) Webdav sur le serveur apache avec un fichier mod_encoding.conf
    séparé qui parametrait le serveur en utf-8 !

    Merci à tous

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

Discussions similaires

  1. Erreur 404 sur url avec accent
    Par zebul666 dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 21/02/2014, 11h24
  2. [MySQL 4.1] probleme d'accents sur une requete SQL
    Par tatayoyo dans le forum Langage SQL
    Réponses: 4
    Dernier message: 10/11/2005, 16h06
  3. Réponses: 8
    Dernier message: 11/10/2005, 14h30
  4. [CR] pb (concaténation/Conversion/Addition) sur date/heure
    Par marvel dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 20/12/2004, 15h31
  5. conversion : VARIANT FAR* URL vers CString
    Par kam dans le forum MFC
    Réponses: 2
    Dernier message: 29/03/2004, 13h32

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