Unterschiedliche Browser ansprechen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Unterschiedliche Browser ansprechen

    Hallo,

    ich würde gerne versuchen mit Hilfe von PHP unterschiedliche Ausgaben zu erschaffen, je nach Browsertyp.

    Ich gebe mal ein Beispiel, damit das klarer wird:

    Im Internet Explorer soll beispielsweise stehen: "Hallo, du nutzt den Internet Explorer." Im Opera soll an der selben stelle stehen: "hallo, du nutzt Opera als Browser." USW.

    Natürlich soll dabei im Opera nicht das stehen, was für den Internet Explorer geschrieben ist, sollte aber klar sein.^^

    Wäre nett, wenn ihr mir bei dem Code helfen könnt, der sollte ja nicht allzu kompliziert sein, ich habe leider keine große Ahnung und suche seid gestern Abend nach einer Lösung ohne Erfolg.

  • #2
    Hallo,

    mal abgesehen davon, dass ich den Sinn dieser Sache nicht ganz verstehe, kannst du doch einfach die Anfrage-Header auslesen ($_SERVER-Array) und damit bekommst du zumindest heraus, als was der Browser sich identifiziert. Im Falle von z. B. Opera kann da sehr verschiedenes stehen. Das macht die ganze Sache noch unsinniger, denn mit JavaScript könntest du das viel zuverlässiger feststellen.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Denke das kann dir weiter helfen so kann so etwa ausehen. Du kannst auch nur "$_SERVER["HTTP_USER_AGENT"]" also echo setzten nur wird zum Bsp.: [FONT=Courier New]Mozilla [/FONT]nicht gleich richtig ausgegeben.

      PHP-Code:
      $browser = (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE") ? "MSIE" "");
      $browser.= (strstr($_SERVER["HTTP_USER_AGENT"], "Opera") ? "Opera" "");
       
      switch (
      $browser) {
       case 
      "MSIE":
       
               echo 
      "Hallo, du nutzt den Internet Explorer.";
            break;
       case 
      "Opera":
              echo 
      "hallo, du nutzt Opera als Browser.";
            break;
       default:
            echo 
      $_SERVER["HTTP_USER_AGENT"];
       } 
      Zuletzt geändert von frag-seb; 05.03.2011, 12:35.

      Kommentar


      • #4
        Zitat von AmicaNoctis Beitrag anzeigen
        Hallo,

        mal abgesehen davon, dass ich den Sinn dieser Sache nicht ganz verstehe, kannst du doch einfach die Anfrage-Header auslesen ($_SERVER-Array) und damit bekommst du zumindest heraus, als was der Browser sich identifiziert. Im Falle von z. B. Opera kann da sehr verschiedenes stehen. Das macht die ganze Sache noch unsinniger, denn mit JavaScript könntest du das viel zuverlässiger feststellen.
        Ich habe leider keine Programmiererfahrung, aber würdest du Javascript da besser finden als die Lösung von "frag-seb"?

        Wenn ja wie würdest du das angehen? Ich hatte es mal versucht mit dem Code, der aber nicht funktioniert:

        Code:
        <script type="text/javascript">
        if(engine == "opera") document.write ("Hallo du nutzt Opera.");
        </script>
        Sry, falls das hier nicht reingehört.

        Zitat von frag-seb Beitrag anzeigen
        Denke das kann dir weiter helfen so kann so etwa ausehen. Du kannst auch nur "$_SERVER["HTTP_USER_AGENT"]" also echo setzten nur wird zum Bsp.: [FONT=Courier New]Mozilla [/FONT]nicht gleich richtig ausgegeben.

        PHP-Code:
        $browser = (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE") ? "MSIE" "");
        $browser.= (strstr($_SERVER["HTTP_USER_AGENT"], "Opera") ? "Opera" "");
         
        switch (
        $browser) {
         case 
        "MSIE":
         
                 echo 
        "Hallo, du nutzt den Internet Explorer.";
              break;
         case 
        "Opera":
                echo 
        "hallo, du nutzt Opera als Browser.";
              break;
         default:
              echo 
        $_SERVER["HTTP_USER_AGENT"];
         } 
        Das ist schon mal eine sehr tolle Lösung, danke dir dafür. Es gibt da leider nur ein großes Problem. Wenn ich andere Browser nutze, wie Firefox, Chrome Safari etc. dann kommt die Browserkennung dieser Browser als Textausgabe. Das wollte ich vermeiden.

        Nochmals Danke an euch beide bis hierher.

        Kommentar


        • #5
          Zitat von thomas_79 Beitrag anzeigen
          würdest du Javascript da besser finden
          Naja, Header vorgaukeln kann jeder. Ich kann deine Seite auch von Hand abfragen und dabei so tun als sei ich ein Firefox 5 auf Windows 9 oder ein IE12 auf GooglixOS 1.3. Mit JavaScript ist das zuverlässiger, weil du da direkt an der Basis sitzt. Es geht jetzt halt darum, was du eigentlich vorhast. Wenn du das in einer DB speichern willst, dann wäre die serverseitige Variante vielleicht schon sinnvoller (wenn auch nicht zuverlässig), wenn es nur um die Ausgabe geht, würde ich JavaScript nehmen. Aber alles steht und fällt mit der Antwort auf meine Eingangsfrage: Warum, welches Ziel verfolgst du damit?
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            Warum nicht dieses: PHP: get_browser - Manual ?
            Schöner kann man es Server seitig nicht bekommen.
            Und Schummler sind selber Schuld, wenn sie was falsches angezeigt bekommen.
            Wir werden alle sterben

            Kommentar


            • #7
              Zitat von AmicaNoctis Beitrag anzeigen
              Es geht jetzt halt darum, was du eigentlich vorhast. Wenn du das in einer DB speichern willst, dann wäre die serverseitige Variante vielleicht schon sinnvoller (wenn auch nicht zuverlässig), wenn es nur um die Ausgabe geht, würde ich JavaScript nehmen. Aber alles steht und fällt mit der Antwort auf meine Eingangsfrage: Warum, welches Ziel verfolgst du damit?
              Es geht hier hauptsächlich um CSS3, da Firefox und Chrome und ich glaube auch Safari das derzeit schon vereinzelt umsetzen können, möchte ich meine Seite auch langsam umstellen (das ist alles noch in der Beta Phase). Bekanntlich können Opera und IE mit CSS3 nichts anfangen und das Design wird dadurch natürlich anders dargestellt, als es der User von uns haben sollte.

              Deswegen möchte ich einen Hinweis ausgeben mit einfachem HTML Code + eben die Textausgabe. In die Datenbank muss ich also nichts eintragen. Hoffe das ist hilfreich, ich dachte, man könnte das mit PHP lösen. Entschuldigt bitte.

              Zitat von combie Beitrag anzeigen
              Und Schummler sind selber Schuld, wenn sie was falsches angezeigt bekommen.
              Das stimmt allerdings.^^

              Kommentar


              • #8
                Du suchst also nach "CSS3 Browserweiche" / "CSS3 browser hack"?
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar


                • #9
                  Hallo ich normal, AmicaNoctis hat nicht ganz unrecht mit aussage das JavaScript für dich vielleicht die bessere Lösung wäre, ist viel genauer.

                  Allerding hab ich ja jetzt schon mit php angefangen und mache das dann auch mal weiter, kann ja jemand anderes dir eine Lösung mit Java Posten. :-)

                  Mein Vorschlag:

                  PHP-Code:
                  $browser = (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE") ? "MSIE" "");
                  $browser.= (strstr($_SERVER["HTTP_USER_AGENT"], "Opera") ? "Opera" "");
                   
                  switch (
                  $browser) {
                   case 
                  "MSIE":
                   
                   
                  header ("Location: http://www.google.de/#hl=de&source=hp&q=Internet+Exploer"); 
                   
                  // Url Austauschen, zu der Seite die mit Internet Explorer richtig läuft
                        
                  break;
                   case 
                  "Opera":
                     
                  header ("Location: http://www.google.de/#hl=de&source=hp&q=Opera"); 
                     
                  // Url Austauschen, zu der Seite die mit Opera richtig läuft
                        
                  break;
                    default:
                        
                  header ("Location: http://www.google.de/#hl=de&source=hp&q=Neue+Seite"); 
                   
                  // Url Austauschen, zu der Neuen Seite die mit CSS3 funzt. 
                   
                   

                  Ist nur mal so eine Idee mit den Angaben die du hier gerade gemacht hast.

                  Achtung hab ich jetzt nicht getestet..

                  Kommentar


                  • #10
                    Hi frag-seb,

                    die Lösung ist eine tolle Alternative. Danke dafür.

                    Ich werde das auf jeden Fall mal testen und dir dann sagen, ob es funktioniert.

                    Eine Javascript Lösung würde ich aber wohl erst mal bevorzugen, wenn ihr mir da helfen würdet, wäre das super.

                    Kommentar


                    • #11
                      Zitat von thomas_79 Beitrag anzeigen
                      Hi frag-seb,

                      die Lösung ist eine tolle Alternative.
                      Nein, ist sie nicht.

                      Eine Javascript Lösung würde ich aber wohl erst mal bevorzugen
                      CSS Browser Selector
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Da wir jetzt wissen, worum es dir geht, halte ich jetzt nur noch die CSS-Weiche für sinnvoll. JavaScript und PHP haben an der Stelle keinen wirklichen Nutzen mehr, weil man mit CSS viel besser prüfen kann, ob diese Version von CSS unterstützt wird. Ich hab ja auch dich direkt gefragt, was du vorhast und mir nicht erst die Telefonnummer deiner Mutter besorgt, um die zu fragen.
                        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                        Super, danke!
                        [/COLOR]

                        Kommentar


                        • #13
                          Cool, danke wieder mal was gelernt. :-)

                          Kommentar

                          Lädt...
                          X