Rechercher : dans
Par :

Redirection PHP pour différents navigateurs

Dernière réponse le 18 jui 2008 à 19:04:59 elpah, le 9 mai 2008 à 11:58:08 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Redirection PHP pour différents navigateurs » dans :
[Webmaster] Faire une redirection VoirLes 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...
Télécharger ClearProg VoirClearProg 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...
PHP - Les cookies et les en-têtes HTTP VoirLes en-têtes HTTP Lors de chaque échange par le protocole HTTP entre votre navigateur et le serveur, des données dîtes d'en-têtes contenant des informations sur les données à envoyer (dans le cas d'une requête) ou envoyées (dans le cas d'une...
PHP - Affichage de texte sur le navigateur VoirLe 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. Les trois fonctions standards PHP fournit 3 fonctions permettant d'envoyer du texte au navigateur. Ces...

1

mote passe, le 9 mai 2008 à 13:19:39

Votre de mote passe

Répondre à mote passe

2

elpah, le 9 mai 2008 à 15:38:31

Je ne voie pas la pertinence de la reponce

Répondre à elpah

3

mjm, le 30 mai 2008 à 14:39:19
  • +2

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

mjm, le 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

mjmdurand, le 2 jun 2008 à 21:09:06

Des questions ?

Répondre à mjmdurand

6

elpah, le 7 jun 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

mjmdurand, le 7 jun 2008 à 21:50:29
  • +1

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

mjmdurand, le 9 jun 2008 à 14:51:26
  • +3

//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

elpah, le 12 jun 2008 à 18:35:54

Merci pour ta réponse

Répondre à elpah

10

mjmdurand, le 17 jun 2008 à 21:58:02
  • +2

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

elpah, le 23 jun 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

mjmdurand, le 24 jun 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

elpah, le 24 jun 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

mjmdurand, le 30 jun 2008 à 10:34:17
  • +2

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

elpah, le 8 jui 2008 à 22:31:08

Désolé du retard sa fonction parfaitement, je te remerci.

Répondre à elpah

16

linoa, le 18 jui 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

 mjmdurand, le 18 jui 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