[RESOLU] apache mode de compatibilité explication..?

Eléphant du PHP | 163 Messages

19 sept. 2014, 10:39

Bonjour,

Je continue de fil en aiguille ^^

Existe t-il une valeur, un paramètre sur apache qui gère la compatibilité et le mode des navigateurs ?

Si oui, quel est-il ?

J'ai vu quelques solutions, mais pas de réelles explications.

ViPHP
ViPHP | 5924 Messages

19 sept. 2014, 11:38

Bonjour,

Pourrais-tu expliciter ton problème ?
C'est incompréhensible.

Cordialement

Eléphant du PHP | 151 Messages

19 sept. 2014, 11:39

Re-

A part ce que je t'ai mis et qui est particulier à IE, non.
Réponse donnée sous toutes réserves.
En général, les hacks se font en css.
(à mon avis ce que l'on te répondra aussi sur développez :wink: ...)
Développeur d'applications pour intranets industriels (IHM), DBA Oracle, auto entrepreneur. Je fuis les frameworks car je pense comme Rasmus Lerdorf : "all PHP frameworks suck"...
Je me suis lancé dans la reprise du projet PhpMyNewsletter (GNU GPL), que je vous invite à essayer.

echo ($user=='enregistré?"je t'aide":"je t'aide pas !");

Eléphant du PHP | 163 Messages

19 sept. 2014, 11:56

Ok Arnaud ;)

bonjour Sékiltoyai,

Voilà le souci :

même code, même page, même navigateur, 2 environnements (un wamp localhost et un lamp online)

Quand j'atteins cette page avec IE, j'ai 2 rendus différents.

En localhost, il reconnait bien ma version d'IE (press F12) IE10/normes
Sur l'autre serveur, j'ai un affichage de compatibilité IE10 et une norme IE7 (d'où le rendu)

Ma question : qu'est-ce qui explique cette mauvaise détection ? Le serveur joue t-il un rôle ?

Eléphant du PHP | 151 Messages

19 sept. 2014, 12:06

Le serveur n'a aucune action sur ce qu'il se passe sur le navigateur du butineur ! Aucune 8-) 8-)

Le css et le JS sont exécutés par le navigateur (oui le css est exécuté, comme le js)
La directive donnée sur l'autre post, est uniquement faite pour indiquer des headers au navigateur, pour la compatibilité, et les hacks se gérent indépendamment.

Mais je vais te donner un tuyau : regarde du coté de html5shiv qui permet d'assurer la compatibilité html5 de tous les navigateurs... Après, si tu as des visiteurs qui continuent à utiliser IE6... :non: 8-|
Développeur d'applications pour intranets industriels (IHM), DBA Oracle, auto entrepreneur. Je fuis les frameworks car je pense comme Rasmus Lerdorf : "all PHP frameworks suck"...
Je me suis lancé dans la reprise du projet PhpMyNewsletter (GNU GPL), que je vous invite à essayer.

echo ($user=='enregistré?"je t'aide":"je t'aide pas !");

ViPHP
ViPHP | 5924 Messages

19 sept. 2014, 12:37

Bonjour,

Il faut savoir que lorsque ton serveur web "teste" le navigateur, il réagit sur la base exclusive d'une information, le User Agent. Et par rapport à cela, sa réaction est de fournir une réponse différente. Ces deux éléments sont très faciles à tester.

Ce que tu peux faire c'est :
1/ Récupérer le User Agent envoyé par ton navigateur. Il se voit dans l'access log de ton serveur. Dans ton Wamp par exemple tu trouveras un fichier access.log qui contient tous les accès de ton navigateur au serveur, tu trouveras le User Agent de ton navigateur à la fin de chaque ligne. Par exemple chez moi c'est ""Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8) Presto/2.12.388 Version/12.16" (j'utilise Opera sur Mac OS X).
2/ Tester la réaction de chaque serveur par rapport à ce User Agent :
curl -A "<ton user agent>" -o lamp.html <adresse de ton site lamp>
curl -A "<ton user agent>" -o wamp.html <adresse de ton site wamp>
(Pour Windows, tu peux récupérer curl à l'adresse suivante : http://curl.haxx.se/download.html)
3/ Regarder les différences entre les pages renvoyées par chaque serveur
diff -u lamp.html wamp.html
(Le mieux est d'exécuter le diff sur un serveur linux)

Le résultat te donnera la raison pour laquelle le navigateur se comporte différemment sur un serveur et sur l'autre.

Cordialement

Eléphant du PHP | 163 Messages

19 sept. 2014, 15:32

Merci pour toutes ces précisions et aides respectives.

Voilà je confirme bien la zouille.

sur le wamp
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)

sur le lamp
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)

??? :-k

Eléphant du PHP | 163 Messages

22 sept. 2014, 16:26

Voilà pour les raisons possibles, à bons entendeurs :

- doctype non valide
- mode forcé dans les meta via X-UA-Compatible ou dans les header php
- le site en question est autorisé dans les paramètres d'affichage de compatibilité (ex : intranet) -> case à cocher

do_ok