[RESOLU] Décalage mise en page sous IE avec readfile().

Décalage mise en page sous IE avec readfile(). [RESOLU] - PHP - Programmation

Marsh Posté le 09-02-2006 à 14:36:47    

Bonjour tout le monde.
 
Bon je préfère prévenir, je n'y connais rien en PHP.
Je fais des pages en HTML mais je leur ai mis l'extension .php seulement pour pouvoir me servir de la fonction "readfile()". Mon site est fait "à la main" (avec Scyte, juste un notepad évolué), j'insère avec "readfile()" donc un bête fichier .txt pour le menu (entre autres). Si je veux modifier ce menu (ajouter une entrée par exemple), je modifie mon menu.txt et zoooom, mon menu change dans tout mon site.
 
Tout marche très bien (Firefox), PRESQUE bien (IE).
 
Firefox, nickel donc. IE : décalage de ma mise en page. Quand je regarde le code source (celui reçu du serveur donc il n'y a plus le code du readfile() mais le contenu du fichier inséré), je remarque que au début de ce fichier inséré, IE (et lui seulement) ajoute un caractère (petit carré). Ce caractère me décale toute ma mise en page (comme si j'avais rajouté des margin-height par exemple).
 
Une idée pour éviter cela svp ?
 
Le format du fichier .txt joue-t-il (UTF-8, ANSI, Unicode...) ?
 
Merci.
 
EDIT : sans compter que ce caractère (petit carré) est aussi "vu" par le validateur W3C qui ne me valide plus ma page...  
 
Copie d'écran :
http://img203.imageshack.us/img203/1425/erreurreadfile9tf.jpg


Message édité par Beral2 le 14-02-2006 à 00:14:28
Reply

Marsh Posté le 09-02-2006 à 14:36:47   

Reply

Marsh Posté le 09-02-2006 à 14:56:31    

probléme d'html et pas de php.
 
Et visiblement, t'as bien un caractére invisible à cet endroit là. Quand à savoir si c'est un du à un mauvais réglage du logiciel ftp pendant l'envoie des fichiers (envoie en mode binaire au lieu d'un envoie en mode texte qui aurait changé les codes de retour à la ligne comme il faut) ou à ton éditeur de texte qui t'as rajouter des caractéres, ca j'en sais rien.

Reply

Marsh Posté le 09-02-2006 à 15:01:55    

omega2 a écrit :

...Quand à savoir si c'est un du à un mauvais réglage du logiciel ftp pendant l'envoie des fichiers (envoie en mode binaire au lieu d'un envoie en mode texte qui aurait changé les codes de retour à la ligne comme il faut)...


Tiens je n'avais pas pensé à cela... merci je vérifierai (peux pas l'faire maintenant, suis au boulot). J'avais essayé tous les formats (UTF-8, ANSI & co) mais pas ça. Sinks.

Reply

Marsh Posté le 09-02-2006 à 19:01:24    

Recoucou,
 
bon c'est pas ça, d'ailleurs j'aurais dû y penser avant car j'utilise EasyPHP pour pouvoir vérifier le bon fonctionnement en local avant d'uploader : ça m.... déjà en local donc avant transfert sur serveur, donc le problème ne peut venir de ce transfert.
 
Une autre idée svp ?
 
P. S. : je continue ce topic ici ou je passe rubrique HTML/CSS ?

Reply

Marsh Posté le 10-02-2006 à 16:21:25    

:up: plize...

Reply

Marsh Posté le 11-02-2006 à 09:35:07    

lorsque tu envoies tes fichiers par FTP, ils passent en quel mode ?  
Binaire, auto ou texte ?
Le mieux est de mettre auto, la plupart du temps les problèmes viennent de là
m'enfin essaye


Message édité par gatsu35 le 11-02-2006 à 09:35:32
Reply

Marsh Posté le 11-02-2006 à 11:56:54    

Lut Gatsu, je transferts en auto, mais comme dit ci-dessus, j'ai DEJA le problème en local AVANT transfert. Donc pas un problème de transfert.

Reply

Marsh Posté le 11-02-2006 à 12:00:48    

et en utilisant la fonction include() au lieu de readfile() ?

Reply

Marsh Posté le 11-02-2006 à 13:06:35    

Même problème avec include().
 
Bon, ça se passe ici.
 
J'avais envie de le terminer avant de le montrer en catégorie HTML/CSS mais...
Le site n'est pas finalisé (ne me dites pas que div id="gauche" et div id="droite, ce n'est pas sémantiquement correct... par exemple siouplait).
 
En code source firefox pas de problème, sous IE petit carré qui décale tout.
 
Sinks.

Reply

Marsh Posté le 12-02-2006 à 18:31:39    

Bon, un dernier petit :up: et je lache l'affaire...

Reply

Marsh Posté le 12-02-2006 à 18:31:39   

Reply

Marsh Posté le 14-02-2006 à 00:13:45    

Bon, au cas où ça vous intéresse, j'ai trouvé.
 
Les include/readfile and co ne fonctionnent correctement qu'avec des fichiers (php, txt, html...) sauvés en ANSI. Le caractère ajouté venait du format du fichier à inclure, l'UTF-8.
 
Donc maintenant je m'amuse à remplacer les "é" par des é, les "è" par des è, les "à" par des à, les "ß" par des ß ...
 
Pfffff super.

Reply

Marsh Posté le 14-02-2006 à 11:35:49    

Beral2 > C'est sur que si tu mélange du texte dans plusieurs encodage différent, ca ne peut que poser probléme.
Si tu veux inclure un fichier qu'est codé différement, il faut que t'utilises les fonctions adéquate, c'est à dire celles qui permettent de stocker le contenu du fichier dans une ou plusieurs variable et celles permettant de changer l'encodage d'une fonction de caractére.
 
Pour les changement d'encodage d'une chaine, voir la doc :  
http://fr3.php.net/manual/fr/ref.mbstring.php
http://fr3.php.net/manual/fr/function.utf8-decode.php
http://fr3.php.net/manual/fr/function.utf8-encode.php
http://fr.php.net/unicode (prévus pour php6 donc à garder sous le coude pour plus tard)

Reply

Marsh Posté le 14-02-2006 à 14:48:40    

Lut omega2,
 
ben justement non, j'essayais d'insérer des fichier enregitrés en utf-8 dans mes pages HTML/PHP dont le charset est justement utf-8. Ca ne marche pas. Ce qui marche (après avoir essayé pas mal de choses), c'est d'insérer un ANSI dans un utf-8.
 
Merci pour les liens, je jette un oeil... mais mon but n'était pas non plus de me lancer dans le PHP.
 
Sinks.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed