Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
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 24/11/2006, 13h22   #1
Membre Expert
 
Inscription : septembre 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : septembre 2002
Messages : 1 638
Points : 1 000
Points : 1 000
Par défaut Passage paramètre erroné

Bonjour,

J'avais un site utilisant le charset=ISO-8859-1 qui fonctionnait correctement.

Pour des raisons de compatibilité, j'ai passé tout le site en utf8.

En bien depuis, quand un paramètre est passé d'une page A vers la page B, celui-ci est transformé entre temps.

Exemple :
Code :
1
2
3
 
Paramètre envoyé depuis la page A : Clermont l'Hérault
Paramètre reçu dans la page B : clermont l'h?rault
Les majuscules disparaissent, et les caractères accentués sont modifiés.

Comment faire pour qu'il n'y ait pas de transformation ?

Nota : Je fais de l'URL rewriting et j'utilise EasyPHP 1.8.

Merci d'avance.
__________________
La connaissance ne sert que si elle est partagée.
http://ms2i.net
Mister Nono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 13h32   #2
Membre actif
 
Inscription : novembre 2006
Messages : 194
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 194
Points : 197
Points : 197
à vérifier, mais je crois que php est en ISO8859-1
tu peux utiliser la fonction utf8_decode pour palier à ça:
http://php.benscom.com/manual/fr/fun...tf8-decode.php
coca25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 13h33   #3
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Toute la chaine de programmation est-elle encodée en utf8 ? => navigateur, script...
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 13h40   #4
Membre Expert
 
Inscription : septembre 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : septembre 2002
Messages : 1 638
Points : 1 000
Points : 1 000
Citation:
Envoyé par coca25
à vérifier, mais je crois que php est en ISO8859-1
tu peux utiliser la fonction utf8_decode pour palier à ça:
http://php.benscom.com/manual/fr/fun...tf8-decode.php
Désolé coca25 mais cela ne change rien.
__________________
La connaissance ne sert que si elle est partagée.
http://ms2i.net
Mister Nono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 13h42   #5
Membre Expert
 
Inscription : septembre 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : septembre 2002
Messages : 1 638
Points : 1 000
Points : 1 000
Citation:
Envoyé par vg33
Toute la chaine de programmation est-elle encodée en utf8 ? => navigateur, script...
Oui, absolument tout.

Même mysql, la conversion des fichiers téléchargés, initialisation des variables sql à la connexion...

Au secooooooouuuuuuuuuuuuuuuurrrrrrrrrrrrrrrrrsssssssssssssssssssssssss
__________________
La connaissance ne sert que si elle est partagée.
http://ms2i.net
Mister Nono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 13h53   #6
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Comment est envoyé le paramètre ? Donne l'extrait de code.
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 14h16   #7
Membre Expert
 
Inscription : septembre 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : septembre 2002
Messages : 1 638
Points : 1 000
Points : 1 000
Voici le bout de code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
<a href=\"" . $urlSite . 
$refPageRechercheBiensImmobiliers 
. $separateur . 
$langue
. $separateur . 
$typeBiensImmobiliers
. $separateur . 
$departement
. $separateur .
$secteur
. $separateur . 
$prixMini
. $separateur . 
$prixMaxi 
. $separateur . 
$reference
. $separateur .
$tri
. $separateur .
$enrPagePrecedente
. ".php\" title=\"" . TITRE_PRECEDENT . "\"> &lt; " . TXT_PRECEDENT . " | </a>
Avec valeur de $secteur égale à Clermont l'Hérault.

Juste pour info, voici le .htaccess :
Code :
1
2
 
RewriteRule ^immobilier-(.+)-(.+)-(.+)-(.+)-(.+)-(.+)-(.+)-(.+)-(.+)\.php$ immobilier.php?langue=$1&typeBiensImmobiliers=$2&departement=$3&secteur=$4&prixMini=$5&prixMaxi=$6&reference=$7&tri=$8&dernierEnr=$9 [L]

Pour rappel : tout les paramètres sans accents sont bons.

A+
__________________
La connaissance ne sert que si elle est partagée.
http://ms2i.net
Mister Nono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 14h31   #8
Membre Expert
 
Inscription : septembre 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : septembre 2002
Messages : 1 638
Points : 1 000
Points : 1 000
Je ne sais pas si cela peut aider à résoudre le problème, mais dans la barre d'adresse du navigateur :
Code :
1
2
 
Clermont l'Hérault prend la forme Clermont%20l'H%C3%A9rault
Et encore une fois : Au secouuuuuurrrrrrrrrrrrrrrrrsssssssssssssssssss.
__________________
La connaissance ne sert que si elle est partagée.
http://ms2i.net
Mister Nono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 14h45   #9
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Les données passées en url (GET) doivent être passées par url_encode().
Tu fais un url_encode() de l'intégralité de ton lien dans le script source, et un url_decode() dans le script cible.
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 19h57   #10
Expert Confirmé
 
Avatar de Maxoo
 
Maxime Pasquier
Expert PHP
Inscription : novembre 2004
Messages : 2 126
Détails du profil
Informations personnelles :
Nom : Maxime Pasquier
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Expert PHP
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2004
Messages : 2 126
Points : 2 602
Points : 2 602
tu peux aussi les passer en session, histoire de pas t'embeter
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur.
Mon espace Développez : mes Créations.


Rencontre & Carte des Membres de Developpez.com, version 3.0
Maxoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 20h09   #11
Membre Expert
 
Inscription : septembre 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : septembre 2002
Messages : 1 638
Points : 1 000
Points : 1 000
Citation:
Envoyé par vg33
Les données passées en url (GET) doivent être passées par url_encode().
Tu fais un url_encode() de l'intégralité de ton lien dans le script source, et un url_decode() dans le script cible.
Merci beaucoup pour cette info.

Maintenant c'est le week-end (fin de semaine en français ), dès lundi j'essaie cela.

Merci encore.
__________________
La connaissance ne sert que si elle est partagée.
http://ms2i.net
Mister Nono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 20h10   #12
Membre Expert
 
Inscription : septembre 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : septembre 2002
Messages : 1 638
Points : 1 000
Points : 1 000
Citation:
Envoyé par Maxoo
tu peux aussi les passer en session, histoire de pas t'embeter
C'est peut-être une solution, mais pour le référencement c'est pas super.

A+
__________________
La connaissance ne sert que si elle est partagée.
http://ms2i.net
Mister Nono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 10h01   #13
Membre Expert
 
Inscription : septembre 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : septembre 2002
Messages : 1 638
Points : 1 000
Points : 1 000
Citation:
Envoyé par vg33
Les données passées en url (GET) doivent être passées par url_encode().
Tu fais un url_encode() de l'intégralité de ton lien dans le script source, et un url_decode() dans le script cible.
Merci vg33 : cela fonctionne.

Juste pour information : puisque mes pages sont en utf8, je fais url_encode() dans le script source, mais je n'ai pas besoin de faire un url_decode() dans le script cible.

Bonne journée.
__________________
La connaissance ne sert que si elle est partagée.
http://ms2i.net
Mister Nono 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 15h23.


 
 
 
 
Partenaires

Hébergement Web