User Agent confond Firefox et Safari
Azymes
-
Romain -
Romain -
Bonjour,
J'ai insérer ce script suivant pour pouvoir appliquer une feuille de style différente en fonction du navigateur:
<html>
<head>
<?
//$_SERVER["HTTP_USER_AGENT"] : variable donnant le navigateur
if (ereg("MSIE", $_SERVER["HTTP_USER_AGENT"])) {
//Internet explorer
echo "<link rel=\"stylesheet\" href=\" ie.css\" type=\"text/css\" />";
} else if (ereg("^Mozilla/", $_SERVER["HTTP_USER_AGENT"])) {
//Mozilla - Firefox
echo "<link rel=\"stylesheet\" href=\" style.css\" type=\"text/css\" />";
} else if (ereg("^Opera/", $_SERVER["HTTP_USER_AGENT"])) {
//Opera
echo "<link rel=\"stylesheet\" href=\" opera.css\" type=\"text/css\" />";
} else if (ereg("^Safari/", $_SERVER["HTTP_USER_AGENT"])) {
//Safari
echo "<link rel=\"stylesheet\" href=\"safari.css\" type=\"text/css\" />";
}
?>
Le problème, c'est que Safari récupère la feuille de style de Firefox, alors que je lui ai créer une feuille de style propre à lui. Peut etre que le problème vient de mon script? Pourtant, IE et Opera détectent bien leur feuille de style à eux.
Je remercie d'avance ceux ou celles qui pourront m'aiguiller sur mon petit problème!
J'ai insérer ce script suivant pour pouvoir appliquer une feuille de style différente en fonction du navigateur:
<html>
<head>
<?
//$_SERVER["HTTP_USER_AGENT"] : variable donnant le navigateur
if (ereg("MSIE", $_SERVER["HTTP_USER_AGENT"])) {
//Internet explorer
echo "<link rel=\"stylesheet\" href=\" ie.css\" type=\"text/css\" />";
} else if (ereg("^Mozilla/", $_SERVER["HTTP_USER_AGENT"])) {
//Mozilla - Firefox
echo "<link rel=\"stylesheet\" href=\" style.css\" type=\"text/css\" />";
} else if (ereg("^Opera/", $_SERVER["HTTP_USER_AGENT"])) {
//Opera
echo "<link rel=\"stylesheet\" href=\" opera.css\" type=\"text/css\" />";
} else if (ereg("^Safari/", $_SERVER["HTTP_USER_AGENT"])) {
//Safari
echo "<link rel=\"stylesheet\" href=\"safari.css\" type=\"text/css\" />";
}
?>
Le problème, c'est que Safari récupère la feuille de style de Firefox, alors que je lui ai créer une feuille de style propre à lui. Peut etre que le problème vient de mon script? Pourtant, IE et Opera détectent bien leur feuille de style à eux.
Je remercie d'avance ceux ou celles qui pourront m'aiguiller sur mon petit problème!
A voir également:
- User Agent confond Firefox et Safari
- Agent ransack - Télécharger - Divers Utilitaires
- Downloadhelper firefox - Télécharger - Outils pour navigateurs
- Inspecter safari ✓ - Forum MacOS
- Safari pour windows - Télécharger - Navigateurs
- Agent quick share ✓ - Forum Virus
8 réponses
salut,
il faut que tu teste sous safari, la variable $_SERVER['HTTP_USER_AGENT'], si elle contient bien "safari"
il faut que tu teste sous safari, la variable $_SERVER['HTTP_USER_AGENT'], si elle contient bien "safari"
Bonjour
Quand je visite www.useragent.org avec le navigateur SAFARI, voici ce que le site m'indique:
Your User Agent is: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr) AppleWebKit/522.15.5 (KHTML, like Gecko) Version/3.0.3 Safari/522.15.5
Je ne sais pas si cela réponds à ta question?
Quand je visite www.useragent.org avec le navigateur SAFARI, voici ce que le site m'indique:
Your User Agent is: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr) AppleWebKit/522.15.5 (KHTML, like Gecko) Version/3.0.3 Safari/522.15.5
Je ne sais pas si cela réponds à ta question?
salut,
oui c'est normal car dans ton expression régulière, le terme Safari doit être en premier:
^Safari
or "safari" ce trouve dans la chaine
oui c'est normal car dans ton expression régulière, le terme Safari doit être en premier:
^Safari
or "safari" ce trouve dans la chaine
Mozilla/5.0 (Windows; U; Windows NT 5.1; fr) AppleWebKit/522.15.5 (KHTML, like Gecko) Version/3.0.3 Safari/522.15.5
Bonjour
J'ai enlevé le ^ comme indiqué. Voici donc le nouveau script:
<?
//$_SERVER["HTTP_USER_AGENT"] : variable donnant le navigateur
if (ereg("MSIE", $_SERVER["HTTP_USER_AGENT"])) {
//Internet explorer
echo "<link rel=\"stylesheet\" href=\" ie.css\" type=\"text/css\" />";
} else if (ereg("^Mozilla/", $_SERVER["HTTP_USER_AGENT"])) {
//Mozilla - Firefox
echo "<link rel=\"stylesheet\" href=\" style.css\" type=\"text/css\" />";
} else if (ereg("^Opera/", $_SERVER["HTTP_USER_AGENT"])) {
//Opera
echo "<link rel=\"stylesheet\" href=\" opera.css\" type=\"text/css\" />";
} else if (ereg("Safari/", $_SERVER["HTTP_USER_AGENT"])) {
//Safari
echo "<link rel=\"stylesheet\" href=\"safari.css\" type=\"text/css\" />";
}
?>
Cependant, Safari récupére toujours la mauvaise feuille de style (celle de firefox). Y a t il une autre erreur dans le script?
J'ai enlevé le ^ comme indiqué. Voici donc le nouveau script:
<?
//$_SERVER["HTTP_USER_AGENT"] : variable donnant le navigateur
if (ereg("MSIE", $_SERVER["HTTP_USER_AGENT"])) {
//Internet explorer
echo "<link rel=\"stylesheet\" href=\" ie.css\" type=\"text/css\" />";
} else if (ereg("^Mozilla/", $_SERVER["HTTP_USER_AGENT"])) {
//Mozilla - Firefox
echo "<link rel=\"stylesheet\" href=\" style.css\" type=\"text/css\" />";
} else if (ereg("^Opera/", $_SERVER["HTTP_USER_AGENT"])) {
//Opera
echo "<link rel=\"stylesheet\" href=\" opera.css\" type=\"text/css\" />";
} else if (ereg("Safari/", $_SERVER["HTTP_USER_AGENT"])) {
//Safari
echo "<link rel=\"stylesheet\" href=\"safari.css\" type=\"text/css\" />";
}
?>
Cependant, Safari récupére toujours la mauvaise feuille de style (celle de firefox). Y a t il une autre erreur dans le script?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
salut,
il faut peut être remplacer ^ par quelque chose d'autre,
va voir : https://openclassrooms.com/fr/courses
il faut peut être remplacer ^ par quelque chose d'autre,
va voir : https://openclassrooms.com/fr/courses
C'est surtout que "Mozilla" est présent dans la plupart des chaînes de User-Agent, y compris Safari.
Soit tu mets ce test en dernier :
Soit tu testes la chaîne "Firefox" :
Soit tu mets ce test en dernier :
<?
//$_SERVER["HTTP_USER_AGENT"] : variable donnant le navigateur
if (ereg("MSIE", $_SERVER["HTTP_USER_AGENT"])) {
//Internet explorer
echo "<link rel=\"stylesheet\" href=\" ie.css\" type=\"text/css\" />";
} else if (ereg("^Opera/", $_SERVER["HTTP_USER_AGENT"])) {
//Opera
echo "<link rel=\"stylesheet\" href=\" opera.css\" type=\"text/css\" />";
} else if (ereg("Safari/", $_SERVER["HTTP_USER_AGENT"])) {
//Safari
echo "<link rel=\"stylesheet\" href=\"safari.css\" type=\"text/css\" />";
}
else if (ereg("^Mozilla/", $_SERVER["HTTP_USER_AGENT"])) {
//Mozilla - Firefox
echo "<link rel=\"stylesheet\" href=\" style.css\" type=\"text/css\" />";
}
?>
Soit tu testes la chaîne "Firefox" :
<?
//$_SERVER["HTTP_USER_AGENT"] : variable donnant le navigateur
if (ereg("MSIE", $_SERVER["HTTP_USER_AGENT"])) {
//Internet explorer
echo "<link rel=\"stylesheet\" href=\" ie.css\" type=\"text/css\" />";
} else if (ereg("Firefox/", $_SERVER["HTTP_USER_AGENT"])) {
//Mozilla - Firefox
echo "<link rel=\"stylesheet\" href=\" style.css\" type=\"text/css\" />";
} else if (ereg("Opera/", $_SERVER["HTTP_USER_AGENT"])) {
//Opera
echo "<link rel=\"stylesheet\" href=\" opera.css\" type=\"text/css\" />";
} else if (ereg("Safari/", $_SERVER["HTTP_USER_AGENT"])) {
//Safari
echo "<link rel=\"stylesheet\" href=\"safari.css\" type=\"text/css\" />";
}
?>
<?php
$string = $HTTP_USER_AGENT;
if(eregi('MSIE 6', $string)){
if((eregi('MSIE 7', $string))||(eregi('MSIE 8',$string))){
$style="style_ie7-8.css";}
else{
$style="style_ie6.css";}
}
elseif(eregi('Mozilla/5', $string))
{
if(eregi('Firefox/2', $string)){
$style="style_firefox2.css";}
elseif(eregi('Firefox/3', $string)){
$style="style_firefox3.css";}
elseif(eregi('Safari', $string)){
if(eregi('Chrome', $string)){
$style="style_google-chrome.css";}
else{
$style="style_safari.css";}
}
else{
$style="style_defaut.css";}
}
elseif(eregi('Opera', $string)){
$style="style_opera.css";}
else{
$style="style_defaut.css";}
?>
Ça choisi le style en fonction de IE6, IE7-8, FF2, FF3, Safari, Opera, Google Chrome. Plus un style par défaut (celui de FireFox conseillé) pour les autres navigateurs au cas où.
Si ça peut aider... Ce serait bien de mettre le sujet résolu.
$string = $HTTP_USER_AGENT;
if(eregi('MSIE 6', $string)){
if((eregi('MSIE 7', $string))||(eregi('MSIE 8',$string))){
$style="style_ie7-8.css";}
else{
$style="style_ie6.css";}
}
elseif(eregi('Mozilla/5', $string))
{
if(eregi('Firefox/2', $string)){
$style="style_firefox2.css";}
elseif(eregi('Firefox/3', $string)){
$style="style_firefox3.css";}
elseif(eregi('Safari', $string)){
if(eregi('Chrome', $string)){
$style="style_google-chrome.css";}
else{
$style="style_safari.css";}
}
else{
$style="style_defaut.css";}
}
elseif(eregi('Opera', $string)){
$style="style_opera.css";}
else{
$style="style_defaut.css";}
?>
Ça choisi le style en fonction de IE6, IE7-8, FF2, FF3, Safari, Opera, Google Chrome. Plus un style par défaut (celui de FireFox conseillé) pour les autres navigateurs au cas où.
Si ça peut aider... Ce serait bien de mettre le sujet résolu.