Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/12/2006, 14h58   #1
Membre régulier
 
Inscription : janvier 2004
Messages : 228
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 228
Points : 70
Points : 70
Par défaut Conversion accents sur URL

Probleme d'accents sur un serveur en particulier

Soit en page 1
Code :
1
2
<?php $candidat="Ségolène";?>
<a href="page2.php?nom=<?php echo $candidat;?>">cliquer pour page 2 </a>
En page 2
Code :
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... ?
pierre50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2006, 14h59   #2
Modérateur
 
Avatar de s.n.a.f.u
 
Homme
Développeur Web
Inscription : août 2006
Messages : 2 700
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2006
Messages : 2 700
Points : 3 357
Points : 3 357
Ou un problème de locales (UTF8 vs latin9).
s.n.a.f.u est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2006, 23h05   #3
Membre éclairé
 
Avatar de broumbroum
 
Inscription : août 2006
Messages : 406
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : août 2006
Messages : 406
Points : 383
Points : 383
utilise url_encode("ségolène") avant de passer le parametre au navigateur.
broumbroum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2006, 11h12   #4
Membre régulier
 
Inscription : janvier 2004
Messages : 228
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 228
Points : 70
Points : 70
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 ...
pierre50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2006, 11h34   #5
Membre du Club
 
Inscription : septembre 2006
Messages : 72
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 72
Points : 55
Points : 55
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 ?
big_ben3333 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2006, 11h59   #6
Membre régulier
 
Inscription : janvier 2004
Messages : 228
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 228
Points : 70
Points : 70
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 ?
pierre50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2006, 12h07   #7
Membre régulier
 
Inscription : janvier 2004
Messages : 228
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 228
Points : 70
Points : 70
Peut-on affirmer que l'utilisation d'un GET nécessite OBLIGATOIREMENT l'utilisation de url_encode ?
pierre50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2006, 16h19   #8
Membre du Club
 
Inscription : septembre 2006
Messages : 72
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 72
Points : 55
Points : 55
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...
big_ben3333 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2006, 10h53   #9
Membre régulier
 
Inscription : janvier 2004
Messages : 228
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 228
Points : 70
Points : 70
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
pierre50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h47.


 
 
 
 
Partenaires

Hébergement Web