Problème de User Agent sur une redirection PHP

  • Créateur du sujet Créateur du sujet Membre supprimé 2
  • Date de début Date de début
M

Membre supprimé 2

Invité
Bonjour,

J'ai réalisé un site pour un ami, qui est valide Xhtml-Css, et qui, comme d'habitude, ne passe pas sur IE6 (mais très bien sur IE7). Avant de régler le problème, j'ai besoin de rediriger les utilisateurs d'IE6 vers une page spécifique. Mon problème vient du fait que lorsque j'insère le code PHP ci-dessous, les utilisateurs d'IE7 subissent le même sort que ceux utilisant IE6. Apparement, IE7 utilise donc le même user agent qu'IE6 ! Avez-vous une solution ?

Redirection:
Bloc de code:
<?php
$donnees = $_SERVER['HTTP_USER_AGENT'];
if (preg_match('/MSIE ?([0-9.]*)/i', $donnees) && !preg_match('/(bot|(?<!mytotal)search|seeker|opera)/i', $donnees)){
header("Location: http://www.site.com");
}
?>
 
Si je regarde dans mes stats voici les identifiants de deux navigateurs :

IE6:
Bloc de code:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)

IE7:
Bloc de code:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322)

Les chaînes varient parfois suivant les extensions installées ou les spywares (c'est pas une blague, certains spywares dans IE signent leurs méfaits) mais la base est toujours la même. ;)


Donc, amha, il faut juste tester la présence dans la chaîne de MSIE 6.0 ou MSIE 7.0 et voilà!
 
Merci pour vos réponses. Je dois avouer que j'ai plus de facilités dans Xhtml & Css plutôt que dans Php. Si l'un d'entre vous peux me fournir le code adéquat, je suis preneur. Et cela pourra être partagé avec tous les lecteurs. :)
 
<?php
$donnees=$_SERVER['HTTP_USER_AGENT'];
if(preg_match("/\bMSIE[\s]6\.0\b/i",$donnees))
{header("location: http://www.site.com");}
?>

ceci reconnaît MSIE 6.0 dans n'importe quelle chaîne de caractères. (uniquement sous cette forme avec un espace entre MSIE et 6.0, dans le cas contraire retire le sigle [\s] et c'est tout)

Voilà
 
  • J’aime
Réactions: tumb
Merci beaucoup, ca a l'air de fonctionner. :)
Sur IE7 je ne suis pas redirigé. Je vais faire le test sur IE6 dans un cyber café.