PHP - Récupération Browser visiteur

kinux -  
 Paul -
Hello,

Pourriez-vous éclairer ma lanterne. J'ai passé une salle nuit et je capte pas ce qui joue pas avec ce bout de code ?

<?php 

if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Gecko') ) 
  { 

    switch(strpos($_SERVER['HTTP_USER_AGENT']) 
        { 
        case "Netscape": 
          $browser = "Netscape"; 
        case "Firefox": 
          $browser = "Mozilla Firefox"; 
        case "Chrome": 
          $browser = "Google Chrome"; 
        } 
  } 
else 
  { 
    $browser = "Mozilla"; 
  } 

if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') ) 
  { 

    switch(strpos($_SERVER['HTTP_USER_AGENT']) 
        { 
        case "Opera": 
          $browser = "Opera"; 
        case "MSIE 3.0": 
          $browser = "Internet Explorer 3.0"; 
        case "MSIE 4.0": 
          $browser = "Internet Explorer 4.0"; 
        case "MSIE 5.0": 
          $browser = "Internet Explorer 5.0"; 
        case "MSIE 6.0": 
          $browser = "Internet Explorer 6.0"; 
        case "MSIE 7.0": 
          $browser = "Internet Explorer 7.0"; 
        case "MSIE 8.0": 
          $browser = "Internet Explorer 8.0"; 
        case "MSIE 9.0": 
          $browser = "Internet Explorer 9.0"; 
        defaut: 
          $browser = "Internet Explorer (version inconnue)"; 
        } 
  } 
else 
  { 
    $browser = "Navigateur inconnu"; 
  } 

echo $browser; 

?> 


Merci d'avance !

P.-s : Censé afficher le navigateur du visiteur.

1 réponse

  1. Paul
     
    C'est parce que tu recherche les mauvaises string. Utilise plutot quelquechose du genre:

    <?php
    $useragent = $_SERVER[`HTTP_USER_AGENT']);

    if (preg_match(`|MSIE ([0-9].[0-9]{1,2})|',$useragent,$matched)) {
    $browser_version=$matched[1];
    $browser = `IE';
    } elseif (preg_match( `|Opera ([0-9].[0-9]{1,2})|',$useragent,$matched)) {
    $browser_version=$matched[1];
    $browser = `Opera';
    } elseif(preg_match(`|Firefox/([0-9\.]+)|',$useragent,$matched)) {
    $browser_version=$matched[1];
    $browser = `Firefox';
    } elseif(preg_match(`|Safari/([0-9\.]+)|',$useragent,$matched)) {
    $browser_version=$matched[1];
    $browser = `Safari';
    } else {
    // browser not recognized!
    $browser_version = 0;
    $browser= `other';
    }

    print "browser: $browser $browser_version";
    ?>
    0