[Résolu] Avec PHP 5.6 et affichage de certains caractères

Pour les problèmes avec l'installation ou l'utilisation du script - About install and use problems.

Modérateurs : boulmontjj, Pierre G., Malabar, Otomatic

Règles du forum
Pensez à effectuer une recherche et à consulter la FAQ, la réponse à votre question a de grandes chances d'avoir déjà été donnée ;-).
Dans votre message, n'oubliez pas de mentionner l'URL vers votre livre d'or, cela nous permet de vous aider bien plus efficacement :super:.
Otomatic
Modérateur
Modérateur
Messages : 716
Inscription : Ven 11 Août 2006, 09:33
Localisation : Paris
Contact :

Re: [Résolu] Avec PHP 5.6 et affichage de certains caractères

Messagepar Otomatic » Mer 09 Déc 2015, 10:35

Bonjour,

Merci de donner ici quelles sont les chaînes de caractères de l'administration qui n'ont pas les bons caractères et comment elles sont visualisées.
Ce n'est pas par ce que l'erreur se propage qu'elle devient vérité. Gandhi


Otomatic
Modérateur
Modérateur
Messages : 716
Inscription : Ven 11 Août 2006, 09:33
Localisation : Paris
Contact :

Re: [Résolu] Avec PHP 5.6 et affichage de certains caractères

Messagepar Otomatic » Mer 09 Déc 2015, 19:14

Bonsoir,
Les fichiers de langues, par exemple agb\languages\francais.php sont bien notés, au début :

Code : Tout sélectionner

/* Encodage utilisé dans le script */
$SCRIPT_ENCODAGE = "utf-8";
mais ne sont pas encodés en utf-8 ; donc même punition que pour les fichiers admin -> les recoder en utf-8 avec Notepad++.
Ce n'est pas par ce que l'erreur se propage qu'elle devient vérité. Gandhi

10lem
Messages : 25
Inscription : Lun 07 Déc 2015, 16:58

Re: [Résolu] Avec PHP 5.6 et affichage de certains caractères

Messagepar 10lem » Jeu 10 Déc 2015, 00:26

je sais pas si c'est moi mais ça marche pas.
En même temps c'est pas très grave, mais je suis pointilleux...

Voici mon fichier francais.php original :

Code : Tout sélectionner

/* Encodage utilisé dans le script */
$SCRIPT_ENCODAGE = "iso-8859-1";
$CONTENT_LANGUAGE = "fr";


Voici mon fichier francais.php aprés modifications

Code : Tout sélectionner

<?php
/* Encodage utilisé dans le script */
$SCRIPT_ENCODAGE = "utf-8";
$CONTENT_LANGUAGE = "fr";


J'ai ensuite ré-encoder le fichier en utf8
Résultat idem

Otomatic
Modérateur
Modérateur
Messages : 716
Inscription : Ven 11 Août 2006, 09:33
Localisation : Paris
Contact :

Re: [Résolu] Avec PHP 5.6 et affichage de certains caractères

Messagepar Otomatic » Jeu 10 Déc 2015, 18:25

Bonjour,

Url de votre Livre d'Or ?
Ce n'est pas par ce que l'erreur se propage qu'elle devient vérité. Gandhi

10lem
Messages : 25
Inscription : Lun 07 Déc 2015, 16:58

Re: [Résolu] Avec PHP 5.6 et affichage de certains caractères

Messagepar 10lem » Jeu 10 Déc 2015, 20:25

Y a quelque chose qui cloche :

Comme dit précédement j'ai d'abord modifier le fichier index.php à la racine du livre d'or avec le code suivant :

Code : Tout sélectionner

//----------------------- affichage du formulaire
header("content-type:text/html; charset=$SCRIPT_ENCODAGE");
$echo_html = new ModeliXe("assembly.htm", "", "", "", "", $chem_template);


A ce moment la j'ai retouvé les accents sur mon livre d'or mais pas sur la partie admin

Ensuite j'ai modifier le fichier francais.php présent dans le répertoire languages en remplaçant :

Code : Tout sélectionner

$SCRIPT_ENCODAGE = "iso-8859-1";
par

Code : Tout sélectionner

$SCRIPT_ENCODAGE = "utf-8";
et le l'ai encode en utf8

A ce moment là je n'ai plus d'accents ni sur l'accueil ni sur l'admin de mon livre d'or.

En remettant le fichier francais.php original je retrouve les accents sur l'accueil mais toujours rien sur l'admin

PS : lien du livre d'or en MP

Otomatic
Modérateur
Modérateur
Messages : 716
Inscription : Ven 11 Août 2006, 09:33
Localisation : Paris
Contact :

Re: [Résolu] Avec PHP 5.6 et affichage de certains caractères

Messagepar Otomatic » Ven 11 Déc 2015, 11:04

Bonjour,

Prenons votre site principal pour lequel vous déclarez :

Code : Tout sélectionner

<!DOCTYPE HTML>
<html class="" lang="fr-FR" prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#">
<head>
   <meta charset="UTF-8">

et, effectivement, l'entête PHP donne bien :

Code : Tout sélectionner

Content-Type: text/html; charset=UTF-8

Mais, pour le Livre d'or, il est déclaré :

Code : Tout sélectionner

<?xml version="1.0" encoding="iso-8859-1"?>
...
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

et, l'entête PHP envoie :

Code : Tout sélectionner

Content-Type: text/html; charset=iso-8859-1


Et ça fonctionne parce que le fichier de langue Française du Livre d'Or est encodé iso-8859-1 (ou ANSI ou CP1252).
Et comme ce fichier contient également les chaînes de caractères pour les pages de l'administration, pour ne pas avoir de « mauvais » caractères, il faut que lesdites pages déclarent, elles-aussi, être en iso-8859-1.

Il faut être cohérent pour la totalité du Livre d'Or, administration comprise. Soit tout en iso-8859-1, soit tout en utf-8 ; on ne peut pas mélanger.

Or, dès que l'on appelle l'administration (La page où il est demandé Login et Pass), il y a une entête PHP

Code : Tout sélectionner

Content-Type: text/html; charset=UTF-8
qui est envoyée et, comme le fichier de langue est iso-8859-1, vous voyez : Page prot�g�e au lieu de Page protégée et même problème pour les autres pages de l'administration.
Ce n'est pas par ce que l'erreur se propage qu'elle devient vérité. Gandhi

nemodus
Messages : 5
Inscription : Lun 30 Juil 2007, 16:24
Contact :

Re: [Résolu] Avec PHP 5.6 et affichage de certains caractères

Messagepar nemodus » Mar 29 Déc 2015, 22:51

Pour info,

Je suis chez OVH et je viens de passer en php 5.6.

Pour rester en iso, j'ai mis ce petit bout de code PHP en haut de la page index, des pages admin et de la page langue.
Valable aussi pour les formulaires.
Avec UTF-8, j'avais quelques problèmes d'encodage, notamment en réception dans Outlook.

Code : Tout sélectionner

<?php

// header('Content-type: text/html; charset=utf-8');
header('Content-Type: text/html; charset=ISO-8859-1'); // écrase l'entête utf-8 envoyé par php
ini_set( 'default_charset', 'ISO-8859-1' );

?>


A la racine du site j'ai mis un .htaccess avec :
AddDefaultCharset Off

Avec cette modif, je n'ai plus aucun problème d'accent dans les pages, les popups et en réception dans Outlook tout en restant en ISO-8859-1.

J'utilise le livre depuis 2006 et il est vraiment Top ! ... :merci:
http://www.nemodus.com/opinion_fr/index.php?lang=francais

kochka
Messages : 5
Inscription : Ven 21 Fév 2014, 20:52
Localisation : Languedoc Roussillon
Contact :

Re: [Résolu] Avec PHP 5.6 et affichage de certains caractères

Messagepar kochka » Mer 13 Avr 2016, 20:56

Bonjour,

J'ai moi aussi un soucis d'affichage des accents sur le livre d'or, tant dans la partie administration que sur le site lui-même.

J'ai fait la mise à jour php en fin de mois dernier et j'ai appliqué ce code sur l'index.php dans le dossier admin :

Code : Tout sélectionner

//----------------------- affichage du formulaire
header("content-type:text/html; charset=$SCRIPT_ENCODAGE");
$echo_html = new ModeliXe("assembly.htm", "", "", "", "", $chem_template);


J'ai ensuite testé le livre d'or et tout allait très bien jusqu'à aujourd'hui (à part du coté administration mais, même si ce n'est pas idéal, ça ne me dérangeait pas trop) :) . Maintenant, il y a un bug sur mon texte d'accueil qui s'affiche comme ceci 8/ :
Bienvenue dans le Livre d'Or de l'atelier :)
N'hésitez pas à laisser un petit message ici pour me confirmer l'arrivée de votre commande et me faire part de vos critiques (constructives, cela va de soi) et avis. Je lirai tous vos petits mots avec grand plaisir.

sur le nombre de message par page :
Messages : 1 Ã 10

et sur ma dernière réponse à une cliente :
Réponse de la créatrice
Avec plaisir Merci Cathy ♥ Je suis ravie qu'elles te plaisent et qu'elles soient agréables à porter
Prends bien soin de toi ♥


J'ai testé presque toutes les solutions proposées ici sans résultat.
Je dois encore tester la dernière solution proposée par Nemodus mais je n'ai pas très bien compris où exactement il faudrait mettre son code dans les fichiers et je ne voudrais faire une erreur que je ne saurai réparer (faut il le mettre en tout tout début avant le reste, ou... ailleurs ?).
Nemodus a écrit :Pour info,

Je suis chez OVH et je viens de passer en php 5.6.

Pour rester en iso, j'ai mis ce petit bout de code PHP en haut de la page index, des pages admin et de la page langue.
Valable aussi pour les formulaires.
Avec UTF-8, j'avais quelques problèmes d'encodage, notamment en réception dans Outlook.

Code : Tout sélectionner

<?php

// header('Content-type: text/html; charset=utf-8');
header('Content-Type: text/html; charset=ISO-8859-1'); // écrase l'entête utf-8 envoyé par php
ini_set( 'default_charset', 'ISO-8859-1' );


Ce qui m'étonne le plus c'est que tous les anciens messages s'affichent très bien, sans aucun soucis d'encodage, seuls le message d'accueil, le nombre de messages et le dernier message s'affiche mal...
Quelqu'un saurait pourquoi ? Et comment régler ce problème ?

Voici l'url du livre d'or en question : http://guestbook.sha-ya.fr/

Merci beaucoup par avance

Otomatic
Modérateur
Modérateur
Messages : 716
Inscription : Ven 11 Août 2006, 09:33
Localisation : Paris
Contact :

Re: [Résolu] Avec PHP 5.6 et affichage de certains caractères

Messagepar Otomatic » Jeu 14 Avr 2016, 10:54

Bonjour,

L'hébergeur est passé, lui-aussi, en PHP 5.6 donc avec l'encodage utf-8 par défaut.
Votre page envoie bien
Content-Type: text/html; charset=iso-8859-1

L'administration, donc vos réponses, n'envoie pas cette entête, donc celles-ci sont encodées avec la valeur par défaut, c'est-à-dire utf-8 et c'est pour ça que vous voyez agréables à porter au lieu de agréables à porter.

Les « anciens messages » sont bien codés iso-8859-1, donc bien affichés
Ce n'est pas par ce que l'erreur se propage qu'elle devient vérité. Gandhi

Otomatic
Modérateur
Modérateur
Messages : 716
Inscription : Ven 11 Août 2006, 09:33
Localisation : Paris
Contact :

Re: [Résolu] Avec PHP 5.6 et affichage de certains caractères

Messagepar Otomatic » Jeu 14 Avr 2016, 13:01

Bonjour,

J'ai procédé, sous PHP 5.6.15, à une installation vierge de agb 5.0.4 en local.
Copie de la totalité du dossier agb
Lancement de http://monsite/agb/
Remplir les champs comme demandé.
Lancement du Livre d'or.
Bien sûr, première erreur :
Strict standards: Resource ID#12 used as offset, casting to integer (12) in G:\www\aviatechno\agb\db\MySQL.php on line 181
Donc, application de viewtopic.php?f=2&t=2822&p=15224#p14449

Ensuite, problème des lettres accentuées, par exemple :
pr�c�dente au lieu de précédente
Normal, car avec PHP 5.6.x, le jeu de caractères par défaut est utf-8 et c'est bien ce qui est envoyé par l'entête PHP par défaut :
Content-Type: text/html; charset=UTF-8
il faut donc, surpasser cela par un envoi iso-8859-1. Dans le fichier agb\index.php
Remplacer

Code : Tout sélectionner

//----------------------- affichage du formulaire
$echo_html = new ModeliXe("assembly.htm", "", "", "", "", $chem_template);

par

Code : Tout sélectionner

//----------------------- affichage du formulaire
header("content-type:text/html; charset=$SCRIPT_ENCODAGE");
$echo_html = new ModeliXe("assembly.htm", "", "", "", "", $chem_template);

Ça fonctionne parfaitement si on n'utilise pas le Livre d'Or en include.
Si on l'utilise en include, c'est la page qui fait l'include qui doit envoyer le header idoine.

Passons maintenant à l'administration..
C'est bien ce que je subbodorais :
Options g�n�rales à la place de Options générales
parce que, là aussi, l'entête PHP générée par défaut est :
Content-Type: text/html; charset=UTF-8

Dans le fichier agb\admin\index.php
remplacer

Code : Tout sélectionner

$echo_html = new ModeliXe("identif.htm", "", "", "", "", $chem_absolu.$chem_template);

par

Code : Tout sélectionner

header("content-type:text/html; charset=$SCRIPT_ENCODAGE");
$echo_html = new ModeliXe("identif.htm", "", "", "", "", $chem_absolu.$chem_template);


Dans le fichier agb\admin\gauche.php
remplacer

Code : Tout sélectionner

$echo_html = new ModeliXe("gauche.htm", "f_sid=".$_GET['f_sid']."", "", "", "", $chem_absolu.$chem_template);

par

Code : Tout sélectionner

header("content-type:text/html; charset=$SCRIPT_ENCODAGE");
$echo_html = new ModeliXe("gauche.htm", "f_sid=".$_GET['f_sid']."", "", "", "", $chem_absolu.$chem_template);


Dans le fichier agb\admin\options.php
remplacer

Code : Tout sélectionner

$echo_html = new ModeliXe("options.htm", "f_sid=".$_GET['f_sid']."", "", "", "", $chem_absolu.$chem_template);

par

Code : Tout sélectionner

header("content-type:text/html; charset=$SCRIPT_ENCODAGE");
$echo_html = new ModeliXe("options.htm", "f_sid=".$_GET['f_sid']."", "", "", "", $chem_absolu.$chem_template);


Je m'aperçois qu'à chaque fois que l'on a $echo_html = new ModeliXe(... il faut ajouter le header avant donc, pour tous les fichiers :

agb\admin\add_admin.php
agb\admin\bannissement.php
agb\admin\boite_java.php
agb\admin\censure.php
agb\admin\erreur.php
agb\admin\f_cadres.php
agb\admin\gauche.php (Déjà noté ci-dessus)
agb\admin\gestion_mess.php
agb\admin\gest_admin.php
agb\admin\index.php (Déjà noté ci-dessus)
agb\admin\modif_mess.php
agb\admin\optimisation.php
agb\admin\options.php (Déjà noté ci-dessus)
agb\admin\repondre.php
agb\admin\rep_auto.php
agb\admin\restauration.php
agb\admin\sauvegarde.php
agb\admin\skins.php
agb\admin\smileys.php
agb\admin\titre.php(58)
agb\admin\version.php

Juste avant les lignes $echo_html = new ModeliXe(...
insérer la ligne

Code : Tout sélectionner

header("content-type:text/html; charset=$SCRIPT_ENCODAGE");


Ne pas oublier aussi d'appliquer :
viewtopic.php?f=2&t=2826
car même si le problème ne se voit pas de suite, il arrivera.
Ce n'est pas par ce que l'erreur se propage qu'elle devient vérité. Gandhi

Jean-Pierre
Messages : 208
Inscription : Mer 09 Août 2006, 10:19
Contact :

Re: [Résolu] Avec PHP 5.6 et affichage de certains caractères

Messagepar Jean-Pierre » Dim 19 Juin 2016, 11:20

:hello:

Idem j'avais à valider une mise à jour PHP 5.3 vers 5.6 chez mon hébergeur Gandi.

Je me disais que ça n'allait pas impacter grand-chose.

Hé bien si, comme vu en amont de ce thread.

Merci Oto de tes précieux conseils et de ta compétence ; grâce à toi j'ai réussi facilement :merci:

JP

Otomatic
Modérateur
Modérateur
Messages : 716
Inscription : Ven 11 Août 2006, 09:33
Localisation : Paris
Contact :

Re: [Résolu] Avec PHP 5.6 et affichage de certains caractères

Messagepar Otomatic » Dim 19 Juin 2016, 14:45

Bonjour,

Voilà le genre de message qui non seulement fait plaisir, mais également incite à continuer.
Ce n'est pas par ce que l'erreur se propage qu'elle devient vérité. Gandhi

Jean-Pierre
Messages : 208
Inscription : Mer 09 Août 2006, 10:19
Contact :

Re: [Résolu] Avec PHP 5.6 et affichage de certains caractères

Messagepar Jean-Pierre » Dim 19 Juin 2016, 17:20

Oto oui... continuer pour aider nos admins biens aimés à ficeler une version qui sera compatible PHP 7 ;-)

Une version qui n'évolue plus depuis des années risque fort de sombrer ; telle est une des lois implacables en informatique.

La 5.4 = mai 2012.

Tout ceci demande un investissement "temps" considérable et j'en suis tout-à-fait conscient car je suis aussi un chatouilleur de code :hehe:

Bien amicalement à Tous et bon courage :hello:

Malabar
Admin
Admin
Messages : 4068
Inscription : Lun 07 Août 2006, 09:46
Localisation : Lorient
Contact :

Re: [Résolu] Avec PHP 5.6 et affichage de certains caractères

Messagepar Malabar » Lun 20 Juin 2016, 21:21

Salut Jean-Pierre,

Nous n'en sommes qu'à la 5.0.4, la 5.4 c'est pour 2021 :P

Oto a fait un super boulot pour rendre le livre compatible et a déjà proposé le code pour une nouvelle version. On va essayé de sortir quelque chose cet été, ce serait bien.
Le mâle à barre (Maxime)


Revenir vers « Installation & utilisation »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Bing [Bot] et 146 invités