Pflanzenfresser: Unterscheiden ob WML oder normaler Browser

Hallo, also ich möchte, dass mir PHP unterscheidet ob ein Handy oder ein normaler Browwser zugreift und dann den jeweiligen Inhalt ausgibt

Ich habe dads jetzt ma so probiert, aber das ist ja nicht so sicher mit den Ports... Weil ein Handy kommt zwar normal nicht über Port 80 aber manche Normale Browser auch nicht???

<?PHP

if (getenv(SERVER_PORT)==80) {
echo "<meta http-equiv='refresh' content='0; URL=http://www.meineseite.de/fuercomputer.html/'>";
}else{
?>

...Der WML-Inhalt...

<?PHP
}
?>

Wie kann ich das anders machen ???

  1. Hallo,

    ich kann mich täuschen, aber eignetlich sollte ein Handy auf die index.wml zugreifen und ein Browser auf die index.html oder index.php

    Also brauchst du das per PHP doch gar nicht auswerten, das macht dein Webserver für dich (sollte er zumindest)

    1. ich kann mich täuschen, aber eignetlich sollte ein Handy auf die index.wml zugreifen und ein Browser auf die index.html oder index.php

      Also brauchst du das per PHP doch gar nicht auswerten, das macht dein Webserver für dich (sollte er zumindest)

      Du täuschst dich.

      Jeder Browser greift immer zuesrt auf die Index-Datei zu, die die alphabetisch zugeordnete Endung weit vorn im Alphabeth hat

      Mag kompliziert klingen, ist aber so. Beispiel:

      Ich habe:
               index.php
               index.html
               index.wml
               index.asp

      Dann greift jeder Browser immer auf die Index.asp zu,weil die Endung mit A anfängt. hätte ich kein index.asp würde er auf index.html zugreifen

      Ganz doof bin ich auch nicht ;-)

      1. Hi,

        Also brauchst du das per PHP doch gar nicht auswerten, das macht dein Webserver für dich (sollte er zumindest)
        Du täuschst dich.

        Ich weiß ja nicht, was für einen Webserver Du betreibst, aber bei meinem Apache wird - wenn nur das Verzeichnis angegeben ist - entsprechend der in der Serverkonfiguration vorgegebenen Reihenfolge nach Dateien gesucht und die erste in der Liste, die gefunden wird, genommen, also bei

        DirectoryIndex index.html index.asp default.html default.htm blabla.htm

        wird bei vorhander index.html wird diese benutzt.
        Wenn keine index.html vorhanden ist, wird nach der index.asp gesucht, falls vorhanden, wird sie genommen.
        Wenn auch keine index.asp vorhanden ist, wird nach der default.html geguckt usw.

        Jeder Browser greift immer zuesrt auf die Index-Datei zu, die die alphabetisch zugeordnete Endung weit vorn im Alphabeth hat

        Das klingt abenteuerlich. Der Browser hat keine Ahnung, welche Dateien überhaupt vorhanden sind. Wenn überhaupt, ist es der Server, der diese Auswahl trifft.

        Ganz doof bin ich auch nicht ;-)

        Kein Kommentar.

        cu,
        Andreas

        --
        MudGuard? Siehe http://www.mud-guard.de/
  2. Hi,

    Hallo, also ich möchte, dass mir PHP unterscheidet ob ein Handy oder ein normaler Browwser zugreift und dann den jeweiligen Inhalt ausgibt

    Hab zwar keine Erfahrung damit, aber sollte der Request vom Mobiltelephon nicht per WAP kommen, der vom normalen Browser per HTTP?

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.mud-guard.de/
  3. Hallo,
    ich habe mal 2 Verzeichnisse angelegt und mit dem unteren PHP funktioniert es.

    Gruß Rainer

    <?php
    $acc = strtolower($HTTP_ACCEPT);
    $ua = strtolower($HTTP_USER_AGENT);
    if (strpos($acc, "vnd.wap.wml")>0 ||
        strpos($ua, "up")>0 ||
        strpos($ua, "nokia")>0) :
      header("Content-type: text/vnd.wap.wml");
      //Ausgabe der WML-Seite
      echo '<?xml version="1.0"?>'."\n";
    ?>
    <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" "http://www.wapforum.org/DTD/wml12.dtd">
    <wml>
      <card>
      <onevent type="ontimer">
        <go href="wap/index.wml"/>
      </onevent>
      <timer value="1"/>
      <p>
      Baue Verbindung auf ...
      </p>
      </card>
    </wml>
    <?php
    else : //Umleiten, falls kein WAP-Browser
      header("Location: html/index.htm");
    endif;
    ?>

  4. Hiho,

    Ich habe dads jetzt ma so probiert, aber das ist ja nicht so sicher mit den Ports... Weil ein Handy kommt zwar normal nicht über Port 80 aber manche Normale Browser auch nicht???

    Jeder normale Browser kommt auf Port 80 an. Denn dort lauscht der Webserver. Alles andere kommt ja gar nicht erst beim Server an und damit auch nicht bei PHP (mal vorausgesetzt das du nicht irgendwelche abenteuerlichen Konfigurationen hast). Wenn ein Handy nicht übe rport 80 ankommt, dann landet es bei einem anderen Server der auf dem entsprechenden Port wartet. Du solltest also eigentlich gar keine Problem haben.

    Marc