WML? PHP? oder was? Gästebuch mit dem Handy füttern. redirect?
Fritz
- sonstiges
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:)
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:)
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
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
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
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
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
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
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:
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
Hallo,
Die url gibt es nicht, aber das:
natürlich nicht. ->
http://www.fritz-weisshart.de/wap/index.wml
wenn's pressiert...
Gruß Fritz
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
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
Hi!
Auch darin passiert keine Umleitung ;-)
Aber egal, hiermit geht es:
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
Hallo,
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
Hallo,
hat noch jemand eine Idee?
Gruß Fritz
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
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
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
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
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
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
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
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