Raffi: Wieso meldet sich der IE als Mozilla?

Wenn ich mit dem IE 6.0.2800.1106 einen print $_SERVER['HTTP_USER_AGENT'] aufrufe meldet der Script:

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)alter scheiss Browser

Woher kommt das? Und wie kann ich sauber den Netscape 4.x anders behandlen als die restlichen Browser?

Ich habe es so versucht:

if (eregi("Mozilla/5.0",$_SERVER['HTTP_USER_AGENT']) || eregi("Mozilla/4.",$_SERVER['HTTP_USER_AGENT']))

Danke und Gruss Raffi

  1. Hi,

    Woher kommt das?

    als Netscape (Arbeitsname "Mozilla") zu Beginn des Internet-Booms längst über Jahre de facto Standard war, hatten bereits diverse lobotomisierte "Webmaster" ihre Server gegen nicht-Netscapes gesperrt, weil sie es nicht auf die Reihe bekommen haben, die Seiten für schlechtere Browser nutzbar zu gestalten - oder dies zumindest glaubten. Microsoft hat infolge dessen von seinem jungen Browser behauptet, er sei "Mozilla compatible". Stimmte zwar nicht, aber half, primitive Abfragen zu umgehen. Die meisten anderen Browserhersteller haben dieses Verhalten imitiert.

    Und wie kann ich sauber den Netscape 4.x anders behandlen als die restlichen Browser?

    Es existiert kein Weg, serverseitig den verwendeten Client zu ermitteln. Schon clientseitig ist das praktisch unmöglich.

    Ich habe es so versucht:

    Der HTTP-User-Agent-Header ist bar jeden Informationsgehaltes. Mein Browser meldet sich derzeit als "Mozilla/6.0 (Build 20021126; U; SuSI.Ruth; en-US)", was er garantiert nicht ist.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo Cheatah,

      Der HTTP-User-Agent-Header ist bar jeden Informationsgehaltes.

      Es mag zwar nötig sein, Unwissenden mit solch übertriebenen Aussagen klar zu machen, das jeder, der es will, diesen Header verändern kann, aber:

      Im richtigen Leben ist es nun einmal so, das sich fast niemand an irgendwelchen HTTP-Headern vergreift und irgendwelche User-Agents oder auch Referer mut- oder böswillig oder wie auch immer verändert. Für Statistikzwecke z.B. sind Sie deshalb durchaus (eingschränkt) aussagekräftig.

      Nichtsdestotrotz ist es sicherlich bitter notwendig, den Leuten klar zu machen, das man niemals zwingend voraussetzen darf, das diese Header irgendwas sinnvolles enthalten bzw. überhaupt vorhanden sind. Insoweit ACK...

      Gruß Henk

  2. Wenn ich mit dem IE 6.0.2800.1106 einen print $_SERVER['HTTP_USER_AGENT'] aufrufe meldet der Script:

    Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)alter scheiss Browser

    Woher kommt das?

    http://selfhtml.teamone.de/diverses/clients.htm#internet_explorer

    Und wie kann ich sauber den Netscape 4.x anders behandlen als die restlichen Browser?

    Jedenfalls nicht mit PHP. Das kommt darauf an, wobei du für den NN4 zusätzliche Sachen machen musst. Bei JavaScript kannst du überprüfen ob bestimmte Objekte zur Verfügung stehen und bei CSS gibt es Möglichkeiten, Angaben vor dem NN4 zu verstecken: http://aktuell.de.selfhtml.org/tippstricks/css/browserweiche/index.htm

    Schöne Grüße,

    Johannes

    --
    ss:| zu:} ls:[ fo:} de:] va:} ch:) sh:( n4:| rl:( br:< js:| ie:{ fl:( mo:}