Flux rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Redirection PHP pour différents navigateurs

elpah, le vendredi 9 mai 2008 à 11:58:08
Bonjour,

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

<?php
if (ereg("MSIE", $_SERVER["HTTP_USER_AGENT"])) {
echo
"<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/1.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/3.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/4.css\" />";
} else if (ereg("^Mozilla/", $_SERVER["HTTP_USER_AGENT"])) {
echo
"<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/1v2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/3v2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/4v2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/5.css\" />";
} else if (ereg("^Opera/", $_SERVER["HTTP_USER_AGENT"])) {
echo
"<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/1v2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/3v2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/4v2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/5.css\" />";
} else {
echo
"<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/1v2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/3v2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/4v2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/5.css\" />";

}
?>

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

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

Mon problème est le suivent 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 consternent et a l’inverse si je surf avec Firefox resté sur cette page si ces une page prévu pour se navigateur … dernier petit problème comment redirigé que les navigateur inférieur a IE 7.

En vous remerciant d’avance pour toute réponse que vous pourriez m’apporter.
Configuration: Ubuntu Gutsy 7.10
Firefox 2.0.0.14
Répondre à elpah  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mote passe, le vendredi 9 mai 2008 à 13:19:39
votre de mote passe
Répondre à mote passe

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
elpah, le vendredi 9 mai 2008 à 15:38:31
je ne voie pas la pertinence de la reponce
Répondre à elpah

3


  • 2
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
mjm, le vendredi 30 mai 2008 à 14:39:19
t'a 2 solutions : ou t'est pas très bon en php, alors tu fait un dossier pour Ie, un dossier pour Mozilla, un dossier pour Opera et un dossier pour les navigateurs inconnus (on ne sait jamais apres tout), puis tu fait une redirection sur les pages respectives de ces dossiers :

------------------------------------------------------------­------------------------------------------------------------­---------------------------------------

<?php

//si le navigateur est ie
if (ereg("MSIE", $_SERVER["HTTP_USER_AGENT"]))
{
header (location: indexie.php');
}

//si le navigateur est Mozilla
elseif (ereg("^Mozilla/", $_SERVER["HTTP_USER_AGENT"]))
{
header (location: indexfirefox.php');
}

//si le navigateur est Opera

elseif (ereg("^Opera/", $_SERVER["HTTP_USER_AGENT"]))
{
header (location: indexopera.php');
}

//si le navigateur est inconnu

else
{
header (location: index.php');
}
?>

---------------------------------------------------------------------------------------------------------------------------------------------------------------

Tu t'en doutes, ca devient vite dur a entretenir, c'est pour cela, que je te propose une autre alternative avec des variables :

<?php

//on verifie les navigateurs et on leur attribue une variable propre a chacun

if (ereg("MSIE", $_SERVER["HTTP_USER_AGENT"]))
{
$navigateur=ie;
}

elseif (ereg("^Mozilla/", $_SERVER["HTTP_USER_AGENT"]))
{
$navigateur=mozilla;
}

elseif (ereg("^Opera/", $_SERVER["HTTP_USER_AGENT"]))
{
$navigateur=opera;
}

else
{
$navigateur=inconnu;
}

?>
---------------------------------------------------------------------------------------------------------------------------------------------------------------

puis, on va maintenant afiicher le texte désiré en fonction du navigateur, par exemple les liens css dans le header

<?php

//d'abord, on verifie que $navigateur existe
if (isset ($navigateur))
{

//si le navigateur est ie
if ($navigateur==ie)
{
echo
"<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/1.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/3.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/4.css\" />";
}

//si le navigateur est Mozilla
elseif ($navigateur==mozilla)
{
echo
"<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/1v2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/3v2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/4v2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/5.css\" />";
}

//si le navigateur est Opera
elseif ($navigateur==opera)
{
echo
"<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/1v2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/3v2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/4v2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/5.css\" />";
}

//si le navigateur est inconnu
elseif ($navigateur==inconnu)
{
"<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/1v2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/3v2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/4v2.css\" />
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"./CSS/5.css\" />";
}
}
?>

----------------------------------------------------------------------------------------------------------------------------------------------------------------

<?php

//maintenant, supposons que l'on veut afficher du texte a l'écran (quoi de plus normal ?) en fonction du navigateur

//d'abord, on verifie que $navigateur existe


if (isset ($navigateur))
{

if ($navigateur==ie)
{
echo
"votre texte ici avec les balises div, p, ect...ect...ect...";
}

elseif ($navigateur==mozilla)
{
echo
"votre texte ici avec les balises div, p, ect...ect...ect...";
}

elseif ($navigateur==opera)
{
echo
"votre texte ici avec les balises div, p, ect...ect...ect...";
}

elseif ($navigateur==inconnu)
{
echo
"votre texte ici avec les balises div, p, ect...ect...ect...";
}
}
?>

A savoir que le texte devra être entré après chaque "echo" (souvent, un simple copier/coller suffit. De plus, le code est souvent le même quel que doit le navigateur).

La second méthode permet en fait un affichage conditionnel de la page. Pratique a condition de bien connaitre le php.


Petites notes :
*pense a utiliser la concaténation, c'est bien plus pratique que les guillemets, crois moi ! si tu veut l'apprendre, je te conseille le site du zéro ici : http://www.siteduzero.com/...

*Qui a dit que le php était facile ? Bonne chance !
Répondre à mjm

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mjm, le vendredi 30 mai 2008 à 14:43:00
si tu veut me contacter, mon nouvel identifiant sur ce site est mjmdurand, ne sois pas surpris !
Répondre à mjm

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mjmdurand, le lundi 2 juin 2008 à 21:09:06
des questions ?
Répondre à mjmdurand

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
elpah, le samedi 7 juin 2008 à 14:36:44
je te remercie pour ta réponse, je suis désolé de te répondre si tard (petit problème de FAI) j'ai suivi tes conseilles et tous marche parfaitement sauf qu'il pourrai être intéressent de différencié IE 7 des version inférieures... en gros je voudrai faire apparaitre un encadré (et d'autre éléments) en fonction des versions de IE et des autres navigateurs.

Merci du temps que tu as pris pour me répondre.
Répondre à elpah

7


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
mjmdurand, le samedi 7 juin 2008 à 21:50:29
je pense aussi utiliser cette fonction ... seulement, voilà, je suis en train de l'étudier.

Dès que j'ai du nouveau, je previens
Répondre à mjmdurand

8


  • 3
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
mjmdurand, le lundi 9 juin 2008 à 14:51:26
//d'abord, on verifie le navigateur
if (ereg("MSIE", $_SERVER["HTTP_USER_AGENT"]))
{
//ensuite, on verifie la version
if (ereg("7", $_SERVER["HTTP_USER_AGENT"]))
{
$navigateur=ie7;
}
if (ereg("6", $_SERVER["HTTP_USER_AGENT"]))
{
$navigateur=ie6;
}
}



Bien entendu, il faudra adapter le code a la nouvelle variable.
Répondre à mjmdurand

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
elpah, le jeudi 12 juin 2008 à 18:35:54
Merci pour ta réponse
Répondre à elpah

10


  • 2
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
mjmdurand, le mardi 17 juin 2008 à 21:58:02
petite modif importante:

//d'abord, on verifie le navigateur
if (ereg("MSIE", $_SERVER["HTTP_USER_AGENT"]))
{
//ensuite, on verifie la version
if (ereg("MSIE 7", $_SERVER["HTTP_USER_AGENT"]))
{
$navigateur=ie7;
}
if (ereg("MSIE 6", $_SERVER["HTTP_USER_AGENT"]))
{
$navigateur=ie6;
}
}
Répondre à mjmdurand

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
elpah, le lundi 23 juin 2008 à 13:41:40
Salut

je voudrai simplifié mon code php en utilisent <? include("./IE.php"); ?> a la place de mettre mon code html en echo mais comment l'intégrer a ton code ???

Merci pour l'aide que tu ma déjà apporté...
Répondre à elpah

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mjmdurand, le mardi 24 juin 2008 à 17:06:35
euh... ca depend de ce que tu veut inclure en fait...

si c'est un menu ou une image alors la, ca risque d'etre dur sinon si c'est pour afficher du texte, alors la ca devrait marcher.

Pour les images, il faudrait que tu crée une page par fraction de code en fait...

A toi de voir la meilleure solution.
Répondre à mjmdurand

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
elpah, le mardi 24 juin 2008 à 20:53:14
se serai pour affichez du texte contenu dans une page php en fonction du navigateur mais j'ai du mal a voire comment le faire, comment inclure <? include("./IE.php"); ?> dans le code que tu ma fourni ??
Répondre à elpah

14


  • 2
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
mjmdurand, le lundi 30 juin 2008 à 10:34:17
je te redonne le code que j'avais écrit dans un post un peu plus au dessus qui devrait repondre a ta question :

//maintenant, supposons que l'on veut afficher du texte a l'écran (quoi de plus normal ?) en fonction du navigateur

//d'abord, on verifie que $navigateur existe

if (isset ($navigateur))
{

if ($navigateur==ie)
{
include ('votrefichier');
}

elseif ($navigateur==mozilla)
{
include ('votrefichier');
}

elseif ($navigateur==opera)
{
include ('votrefichier');
}

elseif ($navigateur==inconnu)
{
include ('votrefichier');
}
}
?>
Répondre à mjmdurand

15


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
elpah, le mardi 8 juillet 2008 à 22:31:08
désolé du retard sa fonction parfaitement, je te remerci.
Répondre à elpah

16


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
linoa, le vendredi 18 juillet 2008 à 12:12:00
Bonjour,

j'ai essayer de copier le code et je n'arrive à le faire marcher...

le echo foire..
Répondre à linoa

17


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 mjmdurand, le vendredi 18 juillet 2008 à 19:04:59
la fonction echo, je l'utilise avec la concanectation (ou quelque chose du genre) .

Le problème peut provenir du fait que dans ton echo il y ait ce genre de texte :


echo 'mon pseudo est 'mjmdurand'';


php ne comprendra pas. Pour qu'il comprenne ces instruction, il faut taper le code suivant :


echo 'mon pseudo est \'mjmdurand\'';


pour les guillemets, il n'y a rien a faire par contre :


echo 'mon pseudo est "mjmdurand"';
Répondre à mjmdurand
[PHP] PATH_INFO et mise en page (Résolu)Bonjour, Très rapidement, j'explique mon souci : je souhaite exploiter l'option Multiviews de mon serveur apache pour faire des URLs en PATH_INFO. Souci : dès que j'ajoute un / après mon fichier php, le navigateur est complètement perdu... www.commentcamarche.net/forum/affich-5503248-php-path-info-et-mise-en-page
[Webmaster] Voir à quoi ressemble votre site ailleursVous développez votre site. Vous êtes conscient des différences de prise en charge des standards par les différents navigateurs sur les différentes plate-formes. Vous avez besoin de savoir comment les autres utilisateurs verront votre site. Quelques... www.commentcamarche.net/faq/sujet-3004-webmaster-voir-a-quoi-ressemble-votre-site-ailleurs
Télécharger ClearProg ClearProg est l'outil idéal pour la suppression de votre trace sur internet. Le programme efface les chemins que vous avez emprunté sur votre navigateur web. ClearProg supporte différents navigateurs : Internet Explorer, Netscape, Mozilla, FireFox... www.commentcamarche.net/telecharger/telecharger-34055592-clearprog
[Webmaster] Faire une redirectionLes différentes solutions sont présentées de la meilleure (.htaccess) à la moins bonne (JavaScript). Un .htaccess Le .htaccess est à placer dans le répertoire qui doit être redirigé. On applique une redirection de cette façon : RedirectPermanent... www.commentcamarche.net/faq/sujet-4640-webmaster-faire-une-redirection
[PHP] Rediriger en fonction de la langue du visiteurBeaucoup de sites demandent à ce que l'on choisisse la langue en cliquant sur une icône correspondant au pays. Il est possible de détecter la langue par défaut du visiteur grâce aux informations fournies par son navigateur (langues acceptées :... www.commentcamarche.net/faq/sujet-876-php-rediriger-en-fonction-de-la-langue-du-visiteur
Tester son site sous plusieurs navigateursTout bon webmaster se doit de vérifier la compatibilité de son site avec les navigateurs les plus courants. Mais il est possible, selon votre système d'exploitation, que vous rencontriez des difficultés à tester l'un ou l'autre des navigateurs. Voici... www.commentcamarche.net/faq/sujet-9681-tester-son-site-sous-plusieurs-navigateurs
Ouvertue de pages blanches (Résolu)bonjour , mon soucis est l'ouverture de certaines pages web blanches avec le message en bas "terminé" le probleme se pose avec differents navigateurs sous xp (IE 6 puis IE 7 et egalement firefox ) j'ai lu et essayé beaucoup de choses a ce... www.commentcamarche.net/forum/affich-2400750-ouvertue-de-pages-blanches
Lecteur windows media ne veut plus se lancer (Résolu)Bonjour, Je suis sous Vista. Le lecteur ne veut plus s'ouvrir, et ne fonctionne plus dans mes differents navigateurs (explorer, mozilla) j'aimerais savoir comment analyser le problème, trouver la cause et réparer si c'est possible... Si... www.commentcamarche.net/forum/affich-6179819-lecteur-windows-media-ne-veut-plus-se-lancer
Probleme d'acces sur gmail et orkut (Résolu)Bonjour à tous, depuis 5 jours déjà je n'arrive pas à trouver ni le site de Gmail ni celui d'Orkut. J'ai essayé sur plusieurs PC et sur différents navigateurs web mais sans succès. Je suppose que le problème réside sur le serveur de... www.commentcamarche.net/forum/affich-2508964-probleme-d-acces-sur-gmail-et-orkut
Télécharger Ctrl TabLes touches Alt+Tab sont des touches très utilisées dans différents systèmes pour passer d’une fenêtre à une autre. Plusieurs combinaisons sont disponibles sous Firefox pour une navigation plus facile et rapide : (Shift+)Ctrl+Tab sous Firefox... www.commentcamarche.net/telecharger/telecharger-34056124-ctrl-tab
Télécharger SunriseBrowserSunriseBrowser est un navigateur d'origine japonaise léger et rapide. Il offre aussi différents outils intégrés utiles au webmestre : adaptation de la taille de la fenêtre aux résolutions courantes, modification du code source immédiatement... www.commentcamarche.net/telecharger/telecharger-34055034-sunrisebrowser
Télécharger Zotero Zotero est un puissant moteur de recherche de collecte de données sur le web (citations, texte complet, pages web, images et autres). Par la suite vous pouvez partager les données de différentes manières. Une extension du navigateur Firefox, Zotero... www.commentcamarche.net/telecharger/telecharger-34055761-zotero
PHP - Les fonctions On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du programme une série... www.commentcamarche.net/php/phpfonc.php3
PHP - Affichage de texte sur le navigateur Le but de PHP est de permettre la création de pages web dynamiques, ainsi son but premier est de pouvoir envoyer des données au navigateur. PHP fournit 3 fonctions permettant d'envoyer du texte au navigateur. Ces fonctions ont la particularité de... www.commentcamarche.net/php/phpaffich.php3
Toutes les réponses pour « Redirection PHP pour différents navigateurs »