[RESOLU] include d'un fichier qui change le comportement client

Petit nouveau ! | 3 Messages

07 juin 2014, 17:35

Mon soucis :
Avec chrome (et pas avec firefox et IE par exemple), selon que j'ajoute un include ou non, le comportement de la page change ...
Alors je sais très bien que PHP : coté serveur, Navigateur (dont chrome) : coté client, mais voila, il doit y avoir un caractère bien spécial que chrome intercepte, ou je ne sais quoi.
Les 2 codes sources d'après chrome sont les mêmes, pourtant.

Voila les 2 pages de tests incriminés :
http://potato.renaud-goud.fr/index2.php
http://potato.renaud-goud.fr/index.php

Dans un des deux, j'ai :
					<ul class="nav navbar-nav navbar-right">
						<script type="text/javascript">
if (document.getElementById("tester") == undefined) {
	document.write('	<li><a href="#" class="filterAdBlock">La publicité est désactivée, en savoir plus ...</a></li>');
}
						</script>
						<li><a href="https://www.facebook.com/pages/StreamerZLiveTV/1414828728754370"><img src="img/facebook.png" class="socialnetworks" alt="F"/></a></li>
						<li><a href="https://www.facebook.com/pages/StreamerZLiveTV/1414828728754370"><img src="img/facebook.png" class="socialnetworks" alt="F"/></a></li>
						<li><a href="https://twitter.com/StreamerZLiveTV"><img src="img/twitter.png" class="socialnetworks" alt="T"/></a></li>
						<li><a class='glyphicon glyphicon-cog' href="#" data-toggle="modal" data-target="#optionModal"> </a></li>
						<li><a class="glyphicon glyphicon-question-sign" href="#" data-toggle="modal" data-target="#helpModal"> </a></li>
					</ul>
et dans l'autre :
					<ul class="nav navbar-nav navbar-right">
						<script type="text/javascript">
if (document.getElementById("tester") == undefined) {
	document.write('	<li><a href="#" class="filterAdBlock">La publicité est désactivée, en savoir plus ...</a></li>');
}
						</script>
<?php include_once 'includes/login-register.php'; ?>
						<li><a href="https://www.facebook.com/pages/StreamerZLiveTV/1414828728754370"><img src="img/facebook.png" class="socialnetworks" alt="F"/></a></li>
						<li><a href="https://twitter.com/StreamerZLiveTV"><img src="img/twitter.png" class="socialnetworks" alt="T"/></a></li>
						<li><a class='glyphicon glyphicon-cog' href="#" data-toggle="modal" data-target="#optionModal"> </a></li>
						<li><a class="glyphicon glyphicon-question-sign" href="#" data-toggle="modal" data-target="#helpModal"> </a></li>
					</ul>
et dans le fichier includes/login-register.php :
						<li><a href="https://www.facebook.com/pages/StreamerZLiveTV/1414828728754370"><img src="img/facebook.png" class="socialnetworks" alt="F"/></a></li>

Au final, avec fichier avec l'include, mon header est sur 2 lignes, alors qu'il ne devrait pas...

Ce qui me tue vraiment, c'est que le code source reçu par les navigateurs sont les mêmes, mais chrome semble avoir un truc qui lui plait pas, non affiché dans la source ...
Mes fichiers sont encodé en UTF-8 avec gestion du retour à la ligne en mode Unix (donc LF uniquement)
Sur les fichiers de tests que j'ai linké plus haut, c'est un NginX qui tourne en tant que WebServer, épaulé par un php-fpm pour le traitement PHP
Mais j'ai le même soucis en prod', sur du apache classique *

D'habitude, j'essaye de me débrouiller, mais là, je comprend vraiment pas ... donc si jamais l'u de vous a déjà eu un soucis du genre ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

07 juin 2014, 21:50

En regardant avec la console Javascript de Chrome, on distingue effectivement une différence entre les deux codes... il faudrait donc regarder ce qu'il y a dans ton include, quitte à faire du ménage d'espaces blancs en trop :)

Image
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 3 Messages

07 juin 2014, 22:22

Effectivement, j'ai un caractère spécial, pourtant, il n'est pas dans mon fichier (du moins, pas visible avec notepad++ ...)
En hexa, ce sont les bytes suivant qui 'font chier' : EF BB BF

Bon, du coup, j'ai recrée un fichier from scratch, on copiant le contenu de l'ancien (sauf le premier caractère, que j'ai rajouté à la main)
Et ca m'a l'air bon

Par contre, comment ce caractère est arrivé la, mystère ...

Merci du tuyau :)

Petit nouveau ! | 3 Messages

07 juin 2014, 22:25

Réponse complémentaire :
D'après ceci : http://stackoverflow.com/questions/4057 ... php-string , ce caractère proviens de l'encodage UTF-8 avec BOM, du coup, j'ai enlevé le BOM