Fritz: WML? PHP? oder was? Gästebuch mit dem Handy füttern. redirect?

Hallo,
hab da ein Problemchen, von dem ich nicht einmal weiß, in welchen Themenbereich ich es einordnen soll.
Ich will in ein Mini-Gästebuch mit einem WAP-handy Einträge machen.
Der Ablauf (stinknormal, denke ich):

1. Ein Formular in WML:
....
Name:      <input type="text" name="name"/>
<br/>
Botschaft: <input type="text" name="message"/>
</p>
<p>
<anchor>
  Senden
  <go href="../action_wap.php" method="post">
    <postfield name="pfn" value="$(name)"/>
    <postfield name="pfm" value="$(message)"/>
  </go>
</anchor>
....

2. ein PHP Script action_wap.php zur Auswertung:
<?php
$today = date("d.m. G:i - ");
if ($_POST["name"] != "") $_POST["name"] = $_POST["name"].": ";
$newline = $today.$_POST["name"].$_POST["message"]."\n";
$newline = stripslashes(htmlentities($newline));
$fp = fopen('text.txt', 'a+');
flock($fp,2) or die("Kann die Zieldatei für den Schreibzugriff nicht freigeben.");
fwrite($fp, $newline);
fclose($fp);
// Redirect-Ziel
header("Location: http://www.fritz-weisshart.de/wap/");
?>

Mein Problem:
der redirect, mit dem ich wieder zum Eingabeformular umleiten will, geht nicht, sondern führt zu einer Fehlermeldung. (die Eintragung ins Gästebuch wird aber ausgeführt.)
PS: mit Opera (Opera versteht WML) funktionierts wie gewünscht!?

Irgendwie sitz ich zwischen zwei Stühlen (PHP und WML), und weiß nicht mehr, wo ich ansetzen soll. Muß allerdings zugeben, daß ich _auf_ den beiden Stühlen auch nicht sehr fest sitze ;-)
Kann mir trotzdem jemand einen Tipp geben, wo ich ansetzen könnte.

Gruß Fritz--
ss:( zu:| ls:# fo:| de:/ va:) ch:? sh:( n4:? rl:? br:$ js:| ie:| fl:| mo:)

  1. Hallo,

    Nachtrag:
    Der Fehlercode, der nach dem redirect ausgegeben wird, lautet:
    405: method not allowed
    Kann damit jemand was anfangen?

    Gruß Fritz--
    ss:( zu:| ls:# fo:| de:/ va:) ch:? sh:( n4:? rl:? br:$ js:| ie:| fl:| mo:)

    1. Hi!

      Der Fehlercode, der nach dem redirect ausgegeben wird, lautet:
      405: method not allowed
      Kann damit jemand was anfangen?

      siehe: http://selfhtml.teamone.de/diverses/httpstatuscodes.htm#uebersicht

      Grüße
      Andreas

      1. Hallo,

        Der Fehlercode, der nach dem redirect ausgegeben wird, lautet:
        405: method not allowed
        siehe: http://selfhtml.teamone.de/diverses/httpstatuscodes.htm#uebersicht

        -> 405 Method Not Allowed Die angegebene Übertragungsmethode ist auf dem Server nicht erlaubt. Die Daten werden deshalb nicht übertragen. Das kann beispielsweise vorkommen, wenn in der Konfiguration des Web-Servers außer der get-Methode keine weitere Methode erlaubt ist, ein HTML-Formular aber einen CGI-Aufruf mit der post-Methode enthält.

        Damit komm ich aber leider auch nicht recht weiter.
        Ich verwende die gleiche redirect - Methode auf dem selben Server in einem html-Formular. Und da funktioniert es. Grübel?

        Gruß Fritz

        --
        ss:( zu:| ls:# fo:| de:/ va:) ch:? sh:( n4:? rl:? br:$ js:| ie:| fl:| mo:)
        1. Hi!

          Dann versteht der Client vielleicht was an den Headern nicht, eine kleine Suche bei google:
          http://www.google.de/search?q=Location+header+WAP -> http://www.thozie.de/wap/faq.htm -> http://allnetdevices.com/faq/?pair=08.012

          Wie ich das verstehe liegt das problem darin dass die Server Content-type: text/html senden, und das gibt Probleme.

          Grüße
          Andreas

          1. Hallo,

            Wie ich das verstehe liegt das problem darin dass die Server Content-type: text/html senden, und das gibt Probleme.

            ja, danke.
            hab die action.php jetzt erweitert:
            // Redirect-Ziel
            header("Location: http://www.fritz-weisshart.de/wap/");
            header("Content-type: text/vnd.wap.wml");

            es bleibt bei der Fehlermeldung!?

            Gruß Fritz

            --
            ss:( zu:| ls:# fo:| de:/ va:) ch:? sh:( n4:? rl:? br:$ js:| ie:| fl:| mo:)
            1. Hi!

              hab die action.php jetzt erweitert:
              // Redirect-Ziel
              header("Location: http://www.fritz-weisshart.de/wap/");
              header("Content-type: text/vnd.wap.wml");

              es bleibt bei der Fehlermeldung!?

              Gib mal die URL, um mal zu gucken was der Server sendet(oder guck selbst)

              Grüße
              Andreas

              1. Hallo,

                Gib mal die URL, um mal zu gucken was der Server sendet

                http://www.fritz-weisshart.de/wap/index.wap
                oder auf obiger Homepage. da ist auch ein WAP Simulator.

                (oder guck selbst)

                Würd ich natürlich auch gern. bitte hilf mir weiter, wie ich das sehen kann.

                Gruß Fritz

                --
                ss:( zu:| ls:# fo:| de:/ va:) ch:? sh:( n4:? rl:? br:$ js:| ie:| fl:| mo:)
                1. hi!

                  http://www.fritz-weisshart.de/wap/index.wap
                  oder auf obiger Homepage. da ist auch ein WAP Simulator.

                  (oder guck selbst)
                  Würd ich natürlich auch gern. bitte hilf mir weiter, wie ich das sehen kann.

                  Die url gibt es nicht, aber das:

                  http://forum.de.selfhtml.org/cgi-bin/http_trace.pl?url= http%3A%2F%2Fwww.fritz-weisshart.de%2Fwap%2F&method=HEAD&version=HTTP%2F1.1

                  Du musst aber genau die Seite angeben wo der redirect erfolgen soll. Den kleinen Code-Ausschnitt mit den Headern packst Du am besten mal in ein eigenes Script und versuchst es selbst/postest die url

                  Grüße
                  Andreas

                  1. Hallo,

                    http://www.fritz-weisshart.de/wap/index.wap

                    Die url gibt es nicht, aber das:

                    natürlich nicht. ->
                    http://www.fritz-weisshart.de/wap/index.wml
                    wenn's pressiert...
                    Gruß Fritz

                    --
                    ss:( zu:| ls:# fo:| de:/ va:) ch:? sh:( n4:? rl:? br:$ js:| ie:| fl:| mo:)
                    1. Hi!

                      natürlich nicht. ->
                      http://www.fritz-weisshart.de/wap/index.wml
                      wenn's pressiert...

                      Aber da kommt kein location-header. Packe bitte nur den location-header  in die (oder eine andere)Datei, sonst nichts, kein if, kein gar nichts

                      Grüße
                      Andreas

                      1. Hallo,

                        Aber da kommt kein location-header. Packe bitte nur den location-header  in die (oder eine andere)Datei, sonst nichts, kein if, kein gar nichts

                        http://www.fritz-weisshart.de/wap/umleitung.php
                        Gruß Fritz

                        --
                        ss:( zu:| ls:# fo:| de:/ va:) ch:? sh:( n4:? rl:? br:$ js:| ie:| fl:| mo:)
                        1. Hi!

                          Auch darin passiert keine Umleitung ;-)

                          Aber egal, hiermit geht es:

                          http://forum.de.selfhtml.org/cgi-bin/http_trace.pl?url=http%3A%2F%2Fwww.fritz-weisshart.de%2Faction_wap.php&method=HEAD&version=HTTP%2F1.1

                          Und für mich sieht hier alles richtig aus.

                          Keine Ahnung was Dein Client jetzt noch falsch macht. Vielleicht weiß das ja jemand anders...

                          Grüße
                          Andreas

                          1. Hallo,

                            http://forum.de.selfhtml.org/cgi-bin/http_trace.pl?url=http%3A%2F%2Fwww.fritz-weisshart.de%2Faction_wap.php&method=HEAD&version=HTTP%2F1.1

                            Und für mich sieht hier alles richtig aus.

                            Keine Ahnung was Dein Client jetzt noch falsch macht. Vielleicht weiß das ja jemand anders...

                            Erst mal danke.
                            Mein Client ist ein Siemens Handy S35.
                            Ich weiß, dass ich da hier nicht zu viele Spezialisten antreffe.
                            Oder sollte ich mich da irren?
                            Gruß Fritz

                            --
                            ss:( zu:| ls:# fo:| de:/ va:) ch:? sh:( n4:? rl:? br:$ js:| ie:| fl:| mo:)
                            1. Hallo,

                              hat noch jemand eine Idee?

                              Gruß Fritz

                              --
                              ss:( zu:| ls:# fo:| de:/ va:) ch:? sh:( n4:? rl:? br:$ js:| ie:| fl:| mo:)
                              1. Hi!

                                hat noch jemand eine Idee?

                                Eine gaaanz kleine Idee hätte ich noch, versuch es mal mit der Vollständigen URL, obwohl es das eigentlich nicht sein kann, aber man weiß ja nie, also anstatt

                                http://www.fritz-weisshart.de/wap/

                                das

                                http://www.fritz-weisshart.de/wap/index.wml

                                Und wenn das auch nicht geht poste mal den Eintrag aus den Log-Files den der Client produziert.

                                Grüße
                                Andreas

                                1. Hi!

                                  Und wenn das auch nicht geht poste mal den Eintrag aus den Log-Files den der Client produziert.

                                  und vergleich das mal mit dem Opera! Wenn Du nicht an Deine Logs kommst logge es in PHP selbst($_SYSTEM...)

                                  Grüße
                                  Andreas

                                  1. Hallo Andreas,

                                    Und wenn das auch nicht geht poste mal den Eintrag aus den Log-Files den der Client produziert.

                                    Also das mit dem kompletten Pfad hatte ich auch schon versucht - ohne Ergebnis

                                    hier das Logfile bei einem Eintrag vom Client "Siemens Handy"
                                    [14/May/2003:13:01:10 +0200] "GET /wap/ HTTP/1.1" 200 2500
                                    193.254.160.83 - - [14/May/2003:13:01:45 +0200] "POST /action_wap.php HTTP/1.1" 302 18
                                    193.254.160.83 - - [14/May/2003:13:01:45 +0200] "POST /wap/ HTTP/1.1" 405 318
                                    193.254.160.83 - - [14/May/2003:13:01:56 +0200] "GET /wap/ HTTP/1.1" 200 2500
                                    217.230.51.165 - - [14/May/2003:13:02:23 +0200] "GET /board.php HTTP/1.1" 200 1362
                                    213.203.224.120 - - [14/May/2003:13:02:23 +0200] "GET /text.txt HTTP/1.0" 200 2685
                                    217.230.51.165 - - [14/May/2003:13:02:23 +0200] "GET /boardcontent.php HTTP/1.1" 200 3973

                                    und vergleich das mal mit dem Opera!

                                    [14/May/2003:12:52:09 +0200] "POST /action_wap.php HTTP/1.1" 302 18
                                    217.230.51.165 - - [14/May/2003:12:52:09 +0200] "GET /wap/ HTTP/1.1" 200 2500
                                    217.230.51.165 - - [14/May/2003:12:52:18 +0200] "GET /board.php HTTP/1.1" 200 1362
                                    213.203.224.120 - - [14/May/2003:12:52:19 +0200] "GET /text.txt HTTP/1.0" 200 2658
                                    217.230.51.165 - - [14/May/2003:12:52:19 +0200] "GET /boardcontent.php HTTP/1.1" 200 3918

                                    kannst Du damit was anfangen? Ich hoffe, du hast dieses Logfile gemeint.
                                    PS. im Errorlog gibt's keinen Eintrag.
                                    Gruß Fritz

                                    --
                                    ss:( zu:| ls:# fo:| de:/ va:) ch:? sh:( n4:? rl:? br:$ js:| ie:| fl:| mo:)
                                    1. Hi!

                                      Da haben wir ja schon den Unterschied:

                                      hier das Logfile bei einem Eintrag vom Client "Siemens Handy"
                                      193.254.160.83 - - [14/May/2003:13:01:45 +0200] "POST /wap/ HTTP/1.1" 405 318

                                      und vergleich das mal mit dem Opera!
                                      217.230.51.165 - - [14/May/2003:12:52:09 +0200] "GET /wap/ HTTP/1.1" 200 2500

                                      Das Problem ist, dass das Handy wieder einen POST-Request sendet, und aus irgendeinem Grund ist ein POST-Requst auf die wml-Datei nicht erlaubt. Ich weiß jetzt nicht ob/wie man den Client dazu auffordern kann anstatt POST einen GET zu senden, aber zur Not könntest Du einfach mal Methode im wml-Formular von POST in GET ändern, dann sollte es auch mit dem Handy gehen.

                                      Grüße
                                      Andreas

                                      1. Hallo Andreas,

                                        Das Problem ist, dass das Handy wieder einen POST-Request sendet, und aus irgendeinem Grund ist ein POST-Requst auf die wml-Datei nicht erlaubt. Ich weiß jetzt nicht ob/wie man den Client dazu auffordern kann anstatt POST einen GET zu senden, aber zur Not könntest Du einfach mal Methode im wml-Formular von POST in GET ändern, dann sollte es auch mit dem Handy gehen.

                                        Ich glaub's nicht: es geht!
                                        Ehrlich. ich hab nicht geglaubt, dass ich jemanden finde, der sich die Mühe macht, dieses Problem mit mir zusammen bis in die letzte Verästelung auseinanderzupfriemeln.
                                        Vielen Dank.
                                        Da kommt man gern wieder einmal. Und das ermutigt mich auch, mal einem Anfänger zu helfen, wenn ich kann.

                                        Gruß Fritz

                                        --
                                        ss:( zu:| ls:# fo:| de:/ va:) ch:? sh:( n4:? rl:? br:$ js:| ie:| fl:| mo:)
                                        1. Hi!

                                          Ich glaub's nicht: es geht!
                                          Ehrlich. ich hab nicht geglaubt, dass ich jemanden finde, der sich die Mühe macht, dieses Problem mit mir zusammen bis in die letzte Verästelung auseinanderzupfriemeln.
                                          Vielen Dank.

                                          gerne!

                                          Da kommt man gern wieder einmal. Und das ermutigt mich auch, mal einem Anfänger zu helfen, wenn ich kann.

                                          so funktioniert das hier ;-)

                                          Aber es hat mich auch interessiert udn ich weiß jetzt auch wieso das passiert. Der Opera(und die meisten anderen) hält sich nicht an die HTTP-Spezifikation, die besagt nämlich dass nach einem 302 Stauscode der Client genau den gleichen Request an die neue Recource senden soll, als in Deinem Fall POST. Genau das macht Dein Handy, und vermutlich ist Dein Webserver so konfiguriert auf .wml oder das ganze Verzeichnis /wap/ keinen POST-Request zuzulassen, daher auch Statuscode 405(method not allowed). Mit GET war die eine Lösung, die andere wäre - so wie es die HTTP-Spezifikation vorsieht, Statuscode 303('See Other') anstatt 302('Found'), denn auf einen 303er Statuscode soll gemäß Spezifikation ein GET-Request auf die im Location-Header genannte Recource folgen. Nur unterstützen das wohl ältere Clients nicht(was bei WAP aber wohl kein Problem ist, ich weiß auch nicht wie alt "ältere Clients" sind).

                                          Siehe hierzu:
                                          http://www.ietf.org/rfc/rfc2616.txt
                                          10.3.3
                                          10.3.4

                                          Wenn Du also noch Lust hast könntest Du mal folgendes ausprobieren:

                                          header('HTTP/1.1 303 See Other');
                                          header('Location: http://www.fritz-weisshart.de/wap/');
                                          header('Content-Type: text/vnd.wap.wml');
                                          header('Connection: close');

                                          das in das Script, und in das Form wieder POST als Methode.

                                          Theoretisch müsste das auch gehen, würde mich wirklich interessieren!

                                          Viele Grüße
                                          Andreas

                                          1. Hallo,

                                            Wenn Du also noch Lust hast könntest Du mal folgendes ausprobieren:

                                            header('HTTP/1.1 303 See Other');
                                            header('Location: http://www.fritz-weisshart.de/wap/');
                                            header('Content-Type: text/vnd.wap.wml');
                                            header('Connection: close');

                                            das in das Script, und in das Form wieder POST als Methode.

                                            Theoretisch müsste das auch gehen, würde mich wirklich interessieren!

                                            Ob ich Lust hab, kann jetzt wohl nicht die Frage sein. Obwohl mir das Ganze langsam aber sicher zu hoch ist.
                                            O.k., hab alles gemacht, wie gewünscht, leider wieder Fehler 405.
                                            Hier auch das Logfile (leider auch "Mist drin, weil ich noch ein paar Zugriffe produziert hab - u.a. auch vom WAP-Simulator auf meiner HP. aber ich denke, Du sortierst das schon auseinander):

                                            217.230.51.165 - - [14/May/2003:15:56:45 +0200] "GET /board.php HTTP/1.1" 200 1362
                                            213.203.224.120 - - [14/May/2003:15:56:46 +0200] "GET /text.txt HTTP/1.0" 200 2599
                                            217.230.51.165 - - [14/May/2003:15:56:46 +0200] "GET /boardcontent.php HTTP/1.1" 200 3859
                                            195.126.165.231 - - [14/May/2003:15:56:51 +0200] "GET /wap/ HTTP/1.1" 200 2500
                                            195.126.165.231 - - [14/May/2003:15:57:07 +0200] "POST /wap/../action_wap.php HTTP/1.1" 303 18
                                            217.230.51.165 - - [14/May/2003:15:57:14 +0200] "GET /board.php HTTP/1.1" 200 1362
                                            213.203.224.120 - - [14/May/2003:15:57:15 +0200] "GET /text.txt HTTP/1.0" 200 2625
                                            217.230.51.165 - - [14/May/2003:15:57:15 +0200] "GET /boardcontent.php HTTP/1.1" 200 3885
                                            193.254.160.211 - - [14/May/2003:15:58:19 +0200] "GET /eingabe_wap.wml HTTP/1.1" 404 296
                                            193.254.160.211 - - [14/May/2003:15:58:53 +0200] "GET /wap/ HTTP/1.1" 200 2500
                                            193.254.160.211 - - [14/May/2003:15:59:25 +0200] "POST /action_wap.php HTTP/1.1" 303 18
                                            193.254.160.211 - - [14/May/2003:15:59:25 +0200] "POST /wap/ HTTP/1.1" 405 318
                                            217.230.51.165 - - [14/May/2003:15:59:35 +0200] "GET /board.php HTTP/1.1" 200 1362
                                            213.203.224.120 - - [14/May/2003:15:59:36 +0200] "GET /text.txt HTTP/1.0" 200 2652
                                            217.230.51.165 - - [14/May/2003:15:59:36 +0200] "GET /boardcontent.php HTTP/1.1" 200 3940
                                            195.126.165.231 - - [14/May/2003:16:00:25 +0200] "GET /wap/ HTTP/1.1" 200 2499
                                            195.126.165.231 - - [14/May/2003:16:00:36 +0200] "GET /wap/../action_wap.php?pfn=test&pfm=get HTTP/1.1" 302 18
                                            195.126.165.231 - - [14/May/2003:16:00:36 +0200] "GET /wap/ HTTP/1.1" 200 2499

                                            Gruß Fritz

                                            --
                                            ss:( zu:| ls:# fo:| de:/ va:) ch:? sh:( n4:? rl:? br:$ js:| ie:| fl:| mo:)
                                            1. Hi!

                                              Ob ich Lust hab, kann jetzt wohl nicht die Frage sein. Obwohl mir das Ganze langsam aber sicher zu hoch ist.
                                              O.k., hab alles gemacht, wie gewünscht, leider wieder Fehler 405.

                                              Naja, schade, Danke dass Du es probiert hast!

                                              Grüße
                                              Andreas