Post und Get gemischt?
Tolwin
- perl
Hallo Forum,
besteht die Möglichkeit in einem CGI Skript ein form zu definieren das
hidden fields mit Parametern enthält die per Submit ausgelesen werden sollen,
zeitgleich per Get einen Parameter an den Link hängt - es gibt keinen Submit Button, sondern ein Javascript dass submitted - und diesen ebenfalls auszulesen?
Habe dass Problem, dass der GET Parameter per
my $page = new CGI;
my $vp = $page->param('vp');
zur Verfügung steht, die Inhalte aus den hidden fields trotz Submit aber nicht.
Im error.log lasse ich mir per dump das CGI Objekt ausgeben, da steht auch nichts unter Parameter[]
Hier noch etwas detailierteren Code
*** Javascript zum Submitten ***
function submitForm() {
document.browsing.submit();
return false;
}
*** Links mit dem GET Parameter ***
<a class='iw-base-link' onclick='return submitForm();' href='/filebrowser_tmp.cgi'><img src='file_images/img_directory.gif' style='border=0;vertical-align:text-bottom;margin-left:3px'><span style='margin-left:4px'>.</span></a><br>
*** und hier die hidden fields ***
<input id="vp" name="vp" type="hidden" value="/default">
<input id="form_name_h" name="form_name_h" type="hidden" value="blalla">
<input id="form_name_b" name="form_name_b" type="hidden" value="blalba">
<input id="element_name_h" name="element_name_h" type="hidden" value="blub">
Würde mich freuen, etwas Unterstützung zu bekommen.
Danke & Gruß
Tolwin
besteht die Möglichkeit in einem CGI Skript ein form zu definieren das
hidden fields mit Parametern enthält die per Submit ausgelesen werden sollen,
zeitgleich per Get einen Parameter an den Link hängt - es gibt keinen Submit Button, sondern ein Javascript dass submitted - und diesen ebenfalls auszulesen?
Theoretisch unter der Voraussetzung eines handgestrickten Webservers unter Verzicht des CGI Moduls ist es möglich.
Praktisch ist es nicht möglich und du solltest dich für GET oder POST entscheiden.
PS mir scheint das hat primär nichts mit Perl zu tun, sondern mit dem CGI Protokoll an sich.
Ein Webserver, der METHOD POST empfängt, ist nicht verpflichtet, einen QueryString bereitzuhalten, und umgekehrt.
mfg Beat
Hallo Beat,
besteht die Möglichkeit in einem CGI Skript ein form zu definieren das
hidden fields mit Parametern enthält die per Submit ausgelesen werden sollen,
zeitgleich per Get einen Parameter an den Link hängt - es gibt keinen Submit Button, sondern ein Javascript dass submitted - und diesen ebenfalls auszulesen?Theoretisch unter der Voraussetzung eines handgestrickten Webservers unter Verzicht des CGI Moduls ist es möglich.
Praktisch ist es nicht möglich und du solltest dich für GET oder POST entscheiden.
also mit den apache-Installationen, mit denen ich bisher zu tun hatte, funktionierte das in der Praxis wunderbar. Allerdings verwendete ich kein Perl. Ich bin mir allerdings ziemlich sicher, dass bei meinen ersten Gehversuchen (ohne das CGI-Modul) auch Perl problemlos sowohl auf den Querystring als auch auf POST-Daten über STDIN zugreifen konnte (beim gleichen Request).
Freundliche Grüße
Vinzenz
Hallo Tolwin,
besteht die Möglichkeit in einem CGI Skript ein form zu definieren das
hidden fields mit Parametern enthält die per Submit ausgelesen werden sollen,
zeitgleich per Get einen Parameter an den Link hängt
Das klingt so,als würdest Du einen GET-Request abschicken. Wenn das funktionieren soll, mußt Du einen POST-REQUEST mit den Variablen abschicken und den Query-string manuell an die URI hängen.
(Meine Kristallkugel sagt mir übrigens, dass das Mischen von POST und GET keine gute Idee ist.)
Viele Grüße
Tosh
hi,
(Meine Kristallkugel sagt mir übrigens, dass das Mischen von POST und GET keine gute Idee ist.)
Ich hab das mal aus Neugierde getestet, mit dem Perl-Modul CGI.pm hats nicht funktioniert.
Meine Versuchsanordnung
form action="/cgi-bin/postget.cgi?getparam=1" method="post"
input name="haurein" value="irgendwas"
Als Parameter-Value-Pärchen kam lediglich das "haurein=irgendwas" am Server an. Auch mit method="get".
Hotti
(Meine Kristallkugel sagt mir übrigens, dass das Mischen von POST und GET keine gute Idee ist.)
Ich hab das mal aus Neugierde getestet, mit dem Perl-Modul CGI.pm hats nicht funktioniert.
Meine Versuchsanordnung
form action="/cgi-bin/postget.cgi?getparam=1" method="post"
input name="haurein" value="irgendwas"Als Parameter-Value-Pärchen kam lediglich das "haurein=irgendwas" am Server an. Auch mit method="get".
Wenn ich deine Aussage wörtlich interpretiere, dann fragt CGI die Methode gar nicht ab, sondern snifft, ob in Standard-Input ein Content > 0 vorhanden ist. Ist dies der Fall, wird der Content ausgewertet, wenn nicht, wird der Query String ausgewertet.
Ich überlege jetzt noch, ob ich dieses Verhalten für stimmig erachten soll.
mfg Beat
hi,
Wenn ich deine Aussage wörtlich interpretiere, dann fragt CGI die Methode gar nicht ab, sondern snifft, ob in Standard-Input ein Content > 0 vorhanden ist. Ist dies der Fall, wird der Content ausgewertet, wenn nicht, wird der Query String ausgewertet.
So isses. Der Parser der legendary 'cgi-lib.pl' hatte folgende Kotrollstruktur:
if( $ENV{QUERY_STRING} ){} # guckst du hier
else{} # guck in STDIN
oder so.
Viele Grüße,
Hotte