kostenloser Webspace werbefrei: lima-city


Browser erkennen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    christian1603

    Kostenloser Webspace von christian1603

    christian1603 hat kostenlosen Webspace.

    Hallo LC,
    Ich habe einen script um Browser zu erkennen:
    if(stristr(mysql_escape_string($_SERVER['HTTP_USER_AGENT']), 'MSIE')){
    $browser = "Internet Explorer";
    }elseif(stristr(mysql_escape_string($_SERVER['HTTP_USER_AGENT']), 'Firefox')){
    $browser = "Firefox";
    }elseif(stristr(mysql_escape_string($_SERVER['HTTP_USER_AGENT']), 'Opera')){
    $browser = "Opera";
    }elseif(stristr(mysql_escape_string($_SERVER['HTTP_USER_AGENT']), 'Safari')){
    $browser = "Safari";
    }elseif(stristr(mysql_escape_string($_SERVER['HTTP_USER_AGENT']), 'Chrome')){
    $browser = "Chrome";
    }elseif(stristr(mysql_escape_string($_SERVER['HTTP_USER_AGENT']), 'Konqueror')){
    $browser = "Konqueror";
    }else{
    $browser = "Unbekannter Browser";
    }

    Aber irgendwie wird Google Chrome als Safari anerkannt. Wie kann man mein Problem lösen. Und habe ich noch bekannte Browser vergessen?

    HELP
    Chrissi
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Diese Methode wird ein Schuss in den Ofen. Manche Browser schreiben den Namen eines anderen Browsers in diese "Beschreibung".
  4. Autor dieses Themas

    christian1603

    Kostenloser Webspace von christian1603

    christian1603 hat kostenlosen Webspace.

    Welche ist den besser?
    Oder kann man das komplett vergessen?
    LG
    Chrissi
  5. Schonmal PHPs get_browser versucht?

    Übrigens: nimm die ganzen mysql_escape_string()s raus, die sind an der Stelle absolut unnötig.

    Und damit du auch mal was lernst: Codestil! Desto kürzer und einfacher der Code, desto besser.
    Aus:
    if(stristr(mysql_escape_string($_SERVER['HTTP_USER_AGENT']), 'MSIE')){
    $browser = "Internet Explorer";
    }elseif(stristr(mysql_escape_string($_SERVER['HTTP_USER_AGENT']), 'Firefox')){
    $browser = "Firefox";
    }elseif(stristr(mysql_escape_string($_SERVER['HTTP_USER_AGENT']), 'Opera')){
    $browser = "Opera";
    }elseif(stristr(mysql_escape_string($_SERVER['HTTP_USER_AGENT']), 'Safari')){
    $browser = "Safari";
    }elseif(stristr(mysql_escape_string($_SERVER['HTTP_USER_AGENT']), 'Chrome')){
    $browser = "Chrome";
    }elseif(stristr(mysql_escape_string($_SERVER['HTTP_USER_AGENT']), 'Konqueror')){
    $browser = "Konqueror";
    }else{
    $browser = "Unbekannter Browser";
    }

    Wird:
    $userAgents = array(
      'MSIE' => 'Internet Explorer',
      'Firefox' => 'Firefox',
      'Opera' => 'Opera',
      'Safari' => 'Safari',
      'Chrome' => 'Chrome',
      'Konqueror' => 'Konqueror',
    );
    
    foreach ($userAgents as $pattern => $userAgent) {
      if (false !== strpos($_SERVER['HTTP_USER_AGENT'], $userAgent)) {
        break;
      }
    }
    // user agent ist jetzt in $userAgent...

    Dadurch kannst du deinen Code dann viel einfacher anpassen, weil du eig. nur noch die Liste oben ändern musst.

    Beitrag zuletzt geändert: 17.5.2010 21:17:46 von nikic
  6. Oder kann man das komplett vergessen?
    unproblematisch war das nie! hier hast du einen ausgangspunkt. von da aus musst du natürlich viel viel weiter (z.b.: browser test, oder sucher strapazieren, in etwa so: "browserweiche javascript" und andere einfälle). also in endeffekt rennt alles dorthin, dass man browser nicht an den namen erkennt, sondern an vorhandenen oder nicht vorhandenen features [so wie: 'document.all' und co.]! namen sind - wie vor mir schon gesagt - wertlose angaben! du hast allerdings dein problem eigentlich nicht genannt: wozu brauchst du das ding? eine etwas genauere antwort ist davon abhängig.
    Und habe ich noch bekannte Browser vergessen?
    yo mey! jede menge ;o) [google schon wieder?]
  7. Chrome basiert auf dem WebKit von Safari - könnte ebenfalls Ursache für die o.g. Voreinstellung sein...))

    D.h. zum Zwecke der Verhaltensanpassung, ist die Unterscheidung zwischen Chrome und Safari meistens nicht relevant (dies wird jedenfalls angestrebt)).

    Beitrag zuletzt geändert: 18.5.2010 10:45:30 von nadobnykh
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!