Klonkrieger: Parameteruebergabe in PERL nochmal

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

  1. 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

  2. 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