Philipp Schmale: Browserabfrage

Moin!
Ich habe ein kleines Problem mit dem IE - er mag position:fixed nicht - und das wollte ich umgehen, indem ich für ihn eine Alternative schreibe.
Das müsste irgendwie in diese Richtung gehen, ich weiss bloß nicht, wie man den Browser abfragt:

<?php if (browser=IE){include("menu2.php");}
      else {include("menu.php2);} ?>

Kann mir irgend jemand helfen?
Danke und Grüße
Philipp

  1. Hi Philipp

    Das müsste irgendwie in diese Richtung gehen, ich weiss bloß nicht, wie man den Browser abfragt:

    <?php if (browser=IE){include("menu2.php");}

    Es müsste AFAIK sowieso browser==IE heißen, wenn du das bezweckst wan ich denke.

    else {include("menu.php2);} ?>

    Kann mir irgend jemand helfen?

    Suche im Archiv!

    Mit PHP kannst du nicht auf den Client zugreifen. Das musst mu mit einer slientseitigen Sprache wie JavaScript machen, wobei man das auch ausschalten kann.

    Johannes

    P.S.: Eine Browserweiche macht wenig sinn, eine funktionsweiche schon eher.

    --
    Drop Bush - not bombs
    ss:| zu:) ls:[ fo:) de:] va:) ch:] sh:( n4:& rl:( br:^ js:| ie:{ fl:( mo:|
    Selfcode bei http://emmanuel.dammerer.at/selfcode.html
    1. moin,

      P.S.: Eine Browserweiche macht wenig sinn, eine funktionsweiche schon eher.

      wenn Du z.b. verschiedene css anwenden willst:

      <?php
      $pos = eregi ("(gecko|MSIE)", $HTTP_USER_AGENT);
      if ($pos === false)
        {
        echo "<link rel="stylesheet" href="layout1.css" type="text/css" />";
        }
      else
        echo "<link rel="stylesheet" href="layout2.css" type="text/css" />";
      ?>

      FaB

      1. Moin!

        Serverseitiges Browser-Raten ist böse! Lasst es sein!

        Außerdem:

        <?php
        $pos = eregi ("(gecko|MSIE)", $HTTP_USER_AGENT);

        Uiii, nur eine einzige Zeile, und schon zwei böse Fallen...

        - Sven Rautenberg

        --
        Signatur oder nicht Signatur - das ist hier die Frage!
        1. moin,

          <?php
          $pos = eregi ("(gecko|MSIE)", $HTTP_USER_AGENT);

          Uiii, nur eine einzige Zeile, und schon zwei böse Fallen...

          bitte um erleuchtung!

          es ist ja auch immer eine frage, wofür es benutzt wird:

          • ist die seite im prinzip mit jedem browser funktionstüchtig und ein eigenes stylesheet verschönert nur die darstellung oder kann sie nur navigiert werden, wenn sie für einen speziellen browser unterschieden wird.

          • gibt es einen kleinen aber nicht tragischen bug, den es zu umschiffen geht

          • ...

          php halte ich deswegen für günstiger, da es im gegensatz zu javascript nicht abgestellt werden kann und auch für andere ausgabemedien (braille, sprache, ...) ein passables ergebnis liefert.

          natürlich ist es am besten, man hat es gar nicht nötig, verschiedene varianten anzubieten.

          ansonsten ist das thema browsererkennung, browserkompatibilität, netscape vs. msie, etc. schon reichlich diskutiert worden und birgt immer wieder stoff für neues.

          FaB

          1. Hi

            $pos = eregi ("(gecko|MSIE)", $HTTP_USER_AGENT);

            Uiii, nur eine einzige Zeile, und schon zwei böse Fallen...

            bitte um erleuchtung!

            Sowas gibts hier nicht, Erleuchtung bekomst Du vielleicht hier: http://kirche.de/ *SCNR*

            Die eine Sache an der Svcen sich stößt sind vermutlich dass Register_Globals=on vorausgesetzt wird - böser Fehler, zumal das jetzt schon wirklich ne ganze Zeit anders empfohlen wird, da sollt man wenigstens in neuen Scripten drauf achten.

            Das 2. weiß ich auach nicht so genau - vielleicht meint er dass "gecko" so viel mit dem IE am Hut hat wie Bio ;-)

            Vielleicht gefällt erigi auch nicht so gut, man sollte - wenn reguläre Ausdrücke benötigt werden(was hier _nicht_ so ist) - möglichst preg_* verwenden.

            Grüße
            Andreas

            1. Hallo,

              nein (heute raten wir alle mal an Svens knappen Bemerkungen rum ,-)), ich denke eher, was Sven zumindest auch meint ist die Nutzung des "Useragenten", der zwar einen Wert zurückgeben kann, dieser aber nichts mit dem verwendeten Browsr zu tun haben muß. Es ist nämlich dem Browser überlassen, was er da zurückgibt, und da der Browser dem benutzer überlassen ist, ist es letztendlich auch Sache des Benutzers, was sein Browser da behaubtet zu sein. und in nicht wenigen Fällen stimmt die Aussage des Browsers nicht mit dem tatsächlichen Wahrheitsgehalt überein.

              Chräcker

              1. Ok, danke schon mal an alle!
                Ich probier noch mal rum.
                Bis denne  Philipp

  2. Moin!

    Ich habe ein kleines Problem mit dem IE - er mag position:fixed nicht - und das wollte ich umgehen, indem ich für ihn eine Alternative schreibe.
    Das müsste irgendwie in diese Richtung gehen, ich weiss bloß nicht, wie man den Browser abfragt:

    PHP hilft dir nicht, weil du damit nicht sicher erkennen kannst, welcher Browser zugreift.

    Javascript hilft dir auch nicht, weil du damit ebenfalls nicht sicher erkennen kannst, welcher Browser läuft.

    Im Prinzip mußt du mit HTML und CSS eine Seite schaffen, der es egal ist, ob sie mit einem IE oder einem anderen Browser betrachtet wird. Korrigiere deine Fragestellung also entsprechend und liefere darauf bezogen dann neue Informationen für den Themenbereich HTML oder CSS.

    - Sven Rautenberg

    --
    Signatur oder nicht Signatur - das ist hier die Frage!
  3. Hallo!

    Das müsste irgendwie in diese Richtung gehen, ich weiss bloß nicht, wie man den Browser abfragt

    Manche Browser senden einen sogenannten User-Agent, der Aufschluss über die Browser-Version und das Betriebssystem geben kann. Dieser User-Agent ist aber manipulierbar. Man könnte den Browser auch mit Javascript ermitteln, indem man eine Funktion verwendet die nur eben dieser Browser beherrscht. Aber das macht Dich abhängig von Javascript.

    Der User-Agent steht bei PHP in $_SERVER["HTTP_USER_AGENT"], diesen String könntest Du auf Zeichenkombinationen überprüfen, die mit hoher Wahrscheinlichkeit vom IE gesendet wurden. 100%ig sicher ist das nicht. Gucke mal in Deine Logs, da hast Du genügend Beispiele ;-)

    Grüße
    Andreas