Redirection automatique PHP pour différents navigateurs

Redirection automatique PHP pour différents navigateurs - PHP - Programmation

Marsh Posté le 10-05-2008 à 15:15:24    

Bonjour,
 
Dernièrement, j’utilisé un code PHP me permettent de définir mes feuilles CSS en fonction des différents navigateurs …
 

Code :
  1. <?php
  2. if (ereg("MSIE", $_SERVER["HTTP_USER_AGENT"])) {
  3. echo
  4. "<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/1.css\" />
  5. <link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/2.css\" />
  6. <link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/3.css\" />
  7. <link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/4.css\" />";
  8. } else if (ereg("^Mozilla/", $_SERVER["HTTP_USER_AGENT"])) {
  9. echo
  10. "<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/1v2.css\" />
  11. <link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/2.css\" />
  12. <link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/3v2.css\" />
  13. <link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/4v2.css\" />
  14. <link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/5.css\" />";
  15. } else if (ereg("^Opera/", $_SERVER["HTTP_USER_AGENT"])) {
  16. echo
  17. "<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/1v2.css\" />
  18. <link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/2.css\" />
  19. <link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/3v2.css\" />
  20. <link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/4v2.css\" />
  21. <link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/5.css\" />";
  22. } else {
  23. echo
  24. "<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/1v2.css\" />
  25. <link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/2.css\" />
  26. <link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/3v2.css\" />
  27. <link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/4v2.css\" />
  28. <link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/5.css\" />";
  29. }
  30. ?>


 
Mais pour une meilleur intégration de mon code en fonction des navigateurs j’ai décidé de faire une redirection de pages automatique en fonction du  navigateur utilisé en partent d’une base de code du style
 

Code :
  1. <?php
  2. /* Redirige vers une page ie 6 */
  3. $host  = $_SERVER['HTTP_HOST'];
  4. $uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
  5. $extra = 'indexie.php';
  6. header("Location: http://$host$uri/$extra" );
  7. exit;
  8. ?>


 
Mon problème est le suivant comment adapté ce code PHP pour qu’il redirige l’internaute en fonction de son navigateur ?
 
Comment faire pour que si je surf avec IE je sois rédigé vers la page me concernant et a l’inverse si je surf avec Firefox resté sur cette même page si c’est une page prévu pour se navigateur … dernier petit problème comment redirigé que les navigateur IE inférieur a IE 7.
 
En vous remerciant d’avance pour toute réponse que vous pourriez m’apporter. :wahoo:

Reply

Marsh Posté le 10-05-2008 à 15:15:24   

Reply

Marsh Posté le 10-05-2008 à 18:40:34    

Rediriger en fonction du navigateur est une mauvaise idée.
La routine de détection ne doit pas très bien marcher. Sans parler des navigateurs non détectés ( http://danzcontrib2.free.fr/statistiques.php ), Opera peut indiquer MSIE (le plus souvent 6) dans son User Agent. Quelle est la page servie aux robots d'indexation ?
Quelle est la feuille css servie aux navigateurs WAP ? etc...
La redirection est ici un obstacle à l'indexation.
Il est possible de n'avoir qu'une feuille de style (parfois 2, parfois il suffit d'ajouter quelques commentaires conditionnels) qui convienne à tous les navigateurs.
http://css.tests.free.fr/hacks.php
http://css.tests.free.fr/hacks2.php

Reply

Marsh Posté le 10-05-2008 à 22:30:26    

Au lieu de farie 4 feuilles de styles, essaye déjà dans un premier temps de toutes les regrouper.
Ensuite, il faut juste utiliser des hacks CSS pour palier aux problemes des navigateurs.
 
Mais si tu cherches à utiliser une feuille de style différente selon le navigateur, c'est qu'il ya un énorme défaut de conception dans ton HTML/CSS (crois moi c'est l'expérience qui parle)
Si tu veux plus d'info passe en MP si tu ne veux pas donner le lien de ton site ici

Reply

Marsh Posté le 11-05-2008 à 10:59:47    

Je pence que je vais essayer de mettre en pratique les hacks j’espère qu’il arriveront à pallié  mes problèmes de compatibilité comme ma barre de mention légale incompatible avec IE6 et inférieur…
 

Code :
  1. body {
  2. background-color: #2B386f;
  3. margin: 0 auto;
  4. padding: 0px;
  5. height: 100%;
  6. min-height: 100%;
  7. font-size: 11px;
  8. text-align: left;
  9. font-family: Arial;
  10. color: #FFF;
  11. }
  12. #footer {
  13. width: 100%;
  14. background-color: #000000;
  15. border-top: 3px solid #2c2b2b;
  16. text-align: center;
  17. color: #969696;
  18. padding-bottom: 5px;
  19. margin: 0px;
  20. margin-top: 30px;
  21. font-size: 10px;
  22. clear: both;
  23. position: fixed;
  24. bottom: 0;
  25. }
  26. #footer a:link, #footer a:visited {
  27. color: #969696;
  28. }
  29. #footer:hover a:link, #footer:hover a:visited {
  30. color: #C6C6C6;
  31. }


 
Pour se qui est des feuilles de styles je me suis déjà fait la réflexion et je pense les réunir en 2 fichier prochainement, merci de vos réponse je vous tiendrez au courant de mes résultats.

Reply

Sujets relatifs:

Leave a Replay

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