Problème avec les Accents

Petit nouveau ! | 7 Messages

14 févr. 2016, 21:18

Bonsoir le Forum,

Je ne connais absolument rien en php et j'aurais besoin de votre aide pour quelque chose qui va surement vous paraître basique.
Sur mon site internet, j'ai un livre d'or qui est externalisé.
Je ne veux pas que mes visiteurs voient l'adresse de mon hébergeur pour ce faire l'hébergeur propose se code php (voir ci-dessous) :
Mais le problème est que les accents sont affichés en caractères bizarre avec ce code.
Quelle ligne de code faut il rajouter pour que les accents apparaissent normalement ?
En mettant le lien directe du Fournisseur sans passer par ce mini fichier les accents apparaissent normalement.

Merci de votre aide..

Amicalement,
MB

<?php
$id = 132202;
$url = "http://www.bienvenue-chez-ariejoie.fr/livredor.php";
$param = unserialize(urldecode(stripslashes($_GET['param'])));
$param[0] = $url;
$param[1] = $id;
$param = addslashes(urlencode(serialize($param)));
$content = file_get_contents("http://www.livre-dor.net/include.php?param=$param");
echo $content;
?>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

14 févr. 2016, 21:52

Bonjour,

Regarde du côté de utf8_encode() et utf8_decode()
http://fr.php.net/utf8_encode
http://fr.php.net/utf8_decode
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 7 Messages

14 févr. 2016, 23:07

Merci de ta réponse Arthur.

Mais malheureusement n'ayant aucune connaissance dans ce langage de programmation, je ne sais pas où je dois insérer la ligne

string utf8_decode ( string $data )

Si j'ai bien compris.

Merci de votre support.

Amicalement,
MB

Mammouth du PHP | 2703 Messages

14 févr. 2016, 23:30

echo utf8_decode($content);

Petit nouveau ! | 7 Messages

15 févr. 2016, 18:42

Merci de ta réponse Or1,
J'ai modifié la ligne de code comme tu m'as dit mais maintenant je me retrouve avec des ? à la place des accents. (Voir lien ci-dessous)

http://www.bienvenue-chez-ariejoie.fr/livredor.php

Code source une fois modifié :
<?php
$id       = 132202;
$url      = "http://www.bienvenue-chez-ariejoie.fr/livredor.php";
$param    = unserialize(urldecode(stripslashes($_GET['param'])));
$param[0] = $url;
$param[1] = $id;
$param    = addslashes(urlencode(serialize($param)));
$content = file_get_contents("http://www.livre-dor.net/include.php?param=$param");
echo utf8_decode($content);
?>
Merci de ton support

Amicalement,
MB

Avatar du membre
Mammouth du PHP | 1609 Messages

15 févr. 2016, 19:00

Bonjour, j'ai testé le code original et je ne vois pas de problème d'accent avec...
Développeur web depuis + de 20 ans

Petit nouveau ! | 7 Messages

15 févr. 2016, 21:10

Merci de ta réponse Saian et pourtant si tu cliques sur le lien ci-dessus qui est dirigé vers le code original, j'ai des ? à la place des accents.

Merci de votre support..

Avatar du membre
Mammouth du PHP | 1609 Messages

15 févr. 2016, 21:16

Excuse moi mais c'est pas cohérent. Là je vois des ? et tu as dis te retrouver avec des ? après utilisation du utf8_decode. Tu parlais au départ de caractères bizarres. Donc déjà je pense que les ? là c'est avec le utf8_decode.
J'ai copié collé le code proposé dans ton premier poste (sans utf8_decode) et testé la page et tous les accents s'affichent correctement.
Développeur web depuis + de 20 ans

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

15 févr. 2016, 21:19

En théorie, il faudrait que tu regardes de bout en bout les différents jeux de caractères utilisés : comment sont encodés tes contenus, tes scripts PHP et quelle entête est renvoyée par le serveur PHP.

En pratique, si ça ne marche pas avec utf8_decode(), essaye avec utf8_encode() ;)
Quand tout le reste a échoué, lisez le mode d'emploi...

Avatar du membre
Mammouth du PHP | 1609 Messages

15 févr. 2016, 21:37

Sauf que le file_get_contents retourne le code html complet de la page qui est encodé en ISO-8859-1 (la meta charset y est bien définie). Dans mon test le script est encodé en utf-8 et ça ne pose pas de problème. ;)

http://www.livre-dor.net/include.php?pa ... 132202%3B}
Développeur web depuis + de 20 ans

Petit nouveau ! | 7 Messages

15 févr. 2016, 22:33

Merci à vous tous de vos réponses et particulièrement à Arthur qui a trouvé la solution avec utf8_encode les accents sont reconnus.

Merci une fois de plus de votre support.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

15 févr. 2016, 22:38

Avec plaisir ! ;-)
On te laisse passer le sujet en Résolu en cliquant sur le bouton à cet effet situé tout en haut à gauche du sujet ?
Quand tout le reste a échoué, lisez le mode d'emploi...

Avatar du membre
Mammouth du PHP | 1609 Messages

15 févr. 2016, 22:54

Ah ben si ça fonctionne je m'incline. Mais c'est quand même pas logique du tout de devoir faire un utf8_encode pour que les accents de la page s'affichent bien alors qu'elle a un charset iso-8859-1. ^^

Je serais curieux de comprendre exactement ce qui se passe car sur mon serveur de dev ça fonctionne de base sans faire de manipulation loufoque.
Développeur web depuis + de 20 ans

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

16 févr. 2016, 01:59

Ah ben si ça fonctionne je m'incline.
;-)
Les problèmes de charset c'est toujours le bazar, surtout quand on a des sources différentes sur lesquelles on n'a pas forcément la main.
Mais c'est quand même pas logique du tout de devoir faire un utf8_encode pour que les accents de la page s'affichent bien alors qu'elle a un charset iso-8859-1. ^^
Je serais curieux de comprendre exactement ce qui se passe car sur mon serveur de dev ça fonctionne de base sans faire de manipulation loufoque.
Au dela du charset défini dans la page HTML, il faut regarder ce que le serveur renvoie comme entete HTTP (Ctrl+i dans Firefox > onglet Réseau)
Et il faut regarder ça aussi bien pour le fichier PHP qui affiche le résultat que pour la page distante qui est renvoyée par le serveur distant.

Bon, mais j'avoue avoir très souvent la flemme de regarder d'où vient le souci et je tente un utf8_encode() ou utf8_decode() à défaut, et je dirai que dans 95% des cas ça suffit ^^
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 7 Messages

13 mars 2016, 14:30

Bonjour le Forum,

Saian à raison, je me suis enflammé un peu trop vite, les accents ne sont toujours pas reconnus !!
A chaque message, je suis obligé de retourner sur le site du livre d'Or éditer le texte et corriger les accents !!
Que faudrait il que je mette dans mon code PHP pour que cela fonctionne ?
Merci de votre aide, je remets le fichier source actuel ci-dessous :

<?php
$id = 132202;
$url = "http://www.bienvenue-chez-ariejoie.fr/livredor.php";
$param = unserialize(urldecode(stripslashes($_GET['param'])));
$param[0] = $url;
$param[1] = $id;
$param = addslashes(urlencode(serialize($param)));
$content = file_get_contents("http://www.livre-dor.net/include.php?param=$param");
echo utf8_encode($content);
?>