Parameteruebergabe in PERL nochmal
Klonkrieger
- cgi
0 Robert0 Klaus Mock
Hi,
hier erstmal mein Quelltext:
<form name="formular" method="post" action="erstellen.pl?newsid=999">
<div align="center">
<p>
<textarea name="formulartext" cols="70" rows="12"></textarea>
</p>
<p>
<input type="submit" name="Abschicken" value="Abschicken">
<input type="reset" name="Abschicken2"value="Zurücksetzen">
</div>
</form>
In meinem Script erstellen.pl mache ich:
$newsid = $cgi->param('newsid');
$formulartext = $cgi->param('formulartext');
Er bekommt den Wert für $formulartext aber nicht für $newsid.
Warum ???
Vielen Dank für eure Hilfe,
Gruß
Kloni
Hallo...
versuche mal mit:
<form name="formular" method="post" action="erstellen.pl">
<div align="center">
<p>
<textarea name="formulartext" cols="70" rows="12"></textarea>
</p>
<p>
<input type="submit" name="Abschicken" value="Abschicken">
<input type="reset" name="Abschicken2"value="Zurücksetzen">
</div>
<input type="hidden" value="999" name="newsid">
</form>
Im Script ändert sich nichts.
Viel Erfolg...
Robert
Hallo,
Er bekommt den Wert für $formulartext aber nicht für $newsid.
Warum ???
Weil irgendwo in den Untiefen des CGI-Moduls etwas wie
if($ENV{REQUEST_METHOD} eq 'POST')
{
#hole parameter von STDIN
}
else
{
# zerlege $ENV{QUERY_STRING}
}
steht. Es ist im CGI-Modul, völlig richtigerweise, nicht vorgesehen, verschiedene Methoden der Parameterübergabe zu mischen. Das wird übrigens von allen mir bekannten Lösungen so gehandhabt. Entweder das eine, oder das andere. Genau so wie es das HTTP-Protokoll vorsieht. Vor allem weil man, wenn man schon POST verwendet, auch gleich alle notwendigen Parameter mit Leichtigkeit als Hidden-Fields realisieren kann.
Darüberhinaus, haben IMHO auch in Formularen, welche die Methode GET verwenden, Parameter nichts im Action-Attribut verloren. So etwas zeugt IMHO von schlechtem Stil, und davon, daß der Seiten-Bastler keine Ahnung von der zugrundeliegenden Technik hat.
So, ich hoffe, daß das nun so weit geklärt ist, daß Du nicht wieder in ein bis zwei Tagen mit der selben Frage vorbeischaust.
Grüße
Klaus