Encodage accent en PHP %E9

Résolu
cs_jimmyhendrix Messages postés 34 Date d'inscription samedi 31 juillet 2010 Statut Membre Dernière intervention 26 mars 2013 - 8 févr. 2011 à 19:30
cs_jimmyhendrix Messages postés 34 Date d'inscription samedi 31 juillet 2010 Statut Membre Dernière intervention 26 mars 2013 - 9 févr. 2011 à 03:30
Salut,

Je suis vraiment bloqué ! J'ai fait un code javascript qui créer une form paypal avec les donnés que le client a inscrit dans la page d'achat en ligne. L'important, c'est que je fais passer les informations du client (nom et adresse) par url (je le place dans l'url où il sera redirigé après avoir complété le paiement). Ca fonctionne très bien ! Dans la nouvelle page avec mes variables dans l'url, j'enregistre ses informations dans un fichier xml (pour la comptabilité de notre entreprise). Par contre, le problème est la ! S'il y a des accents dans ses infos, ça fait tout planté. Habituellement, je suis capable d'encoder sans problème, mais j'ai essayé toutes les méthodes et rien fonctionne.

Par exemple :

$nom = htmlentities($nom,ENT_NOQUOTES,'ISO8859-1');
$nom = html_entity_decode($nom); 
$nom = stripslashes($nom);

$nom = str_replace(...


Voici à quoi ressemble mon url lorsque paypal redirige le client :
http://www.monsiteweb.com/merci.php?nom=Paul%20Guay&mail=pauguay@gmail.com&numero=1234&app=32&rue=Lessard&ville=Qu%E9bec&province=Qu%E9bec&codepostal=G1R%203T8

Donc,
nom=Paul Guay
mail=pauguay@gmail.com
numero=1234
app=32
rue=Lessard
ville=Québec
province=Québec
codepostal=G1R 3T8

Étrangement, ca fonctionne pour l'envoie d'un e-mail qui est fait du meme coup (les accents apparaissent dans le mail) sans que j'aie à faire aucun encodage. Par contre, c'est un code que j'ai pris quelque part et je crois qu'il encode déjà dans ces 3 lignes :

$From  = "From: " . $destinateur . "\n";
$From .= "MIME-version: 1.0\n";
$From .= "Content-type: text/html; charset= iso-8859-1\n";


Je suis vraiment bloqué, si quelque pouvait m'aider, ce serait grandement apprécié !! Je vous donne aussi mon code d'enregistrement xml :


$xml_upload = 'no="'.$no.'" nom="'.$nom.'" mail="'.$mail.'" numero="'.$numero.'" app="'.$app.'" rue="'.$rue.'" ville="'.$ville.'" province="'.$province.'" codepostal="'.$codepostal.'" date="'.$date.'"/>';



$filename = 'shop/particulier2011.xml';



$newContent = '"; 



$content = file_get_contents($filename); 



$newContent = str_replace('</factures>', $newContent, $content); 



$handle = fopen($filename, "w" );

fwrite($handle, $newContent); 

fclose($handle);


Je prends la méthode GET pour obtenir mes variables : $nom = $_GET["nom"];

2 réponses

cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
8 févr. 2011 à 20:18
bonsoir

ceci affichera le tableau des $_GET

echo '';
print_r($_GET);
echo '

';

<?xml version="1.0" encoding="ISO-8859-1" ?>
as tu cette ligne en tête de fichier dans particulier2011.xml

a++
3
cs_jimmyhendrix Messages postés 34 Date d'inscription samedi 31 juillet 2010 Statut Membre Dernière intervention 26 mars 2013 1
9 févr. 2011 à 03:30
WOW ! Bien vu ! En tête de mon fichier xml, j'avais encoding="UTF-8" et non ISO-8859-1 ! Mon problème est enfin réglé !

Merci mille fois !
0
Rejoignez-nous