PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : perl CGI.pm macht Probleme bei FORM-Daten + Query



Molaf
19-12-2005, 11:19
Hallo,

ich stelle grade ein CGI-Skript auf CGI.pm um und habe einige Probleme mit dem Übertragen von Formulardaten per POST und dem Erhalt des Query.


#!/opt/lampp/bin/perl -w
use CGI::Carp qw(fatalsToBrowser);
use strict;
use CGI qw/:standard -newstyle_urls/;

...

print header,start_html(-title=>'test',-encoding=>{'utf-8'},-lang=>'de-DE'),
$linkleiste, '<div class="scrollend">',

start_form(-method=>'POST',
-action=>"$myself?aktion=lesen;session=$query->{'key'};artikel=$artikel{'id'};"
);

....

print end_form,'</div>',end_html;


Mal abgesehen davon dass der ausgegebene HTML-Code bei encodig folgendes enthält:

<meta http-equiv="Content-Type" content="text/html; charset=HASH(0x81fe920)" />

Das habe ich erstmal ignoriert, doch wie man sehen kann brauche ich für die Information was das Skript machen soll die Queryanteile 'aktion' und den Sessionkey.
Die Standardeinstellung von start_form ist das Übermitteln per GET-Methode. Das überschreibt aber neben anderen Nachteilen auch meinen Query, sodass ich dann diese Informationen verliere.
Stelle ich aber per -method=>'POST' das Formular auf Post um, und gebe per -action auch noch den Link+Query weiter erscheint das korrekt im HTML-Code

<form method="post" action="http://molaf.ath.cx/cgi-bin/molaf-cms/molaf-cms.cgi?aktion=lesen;session=putaTIXPKrqybhGlSXRr; artikel=aaaaaa;" enctype="multipart/form-data">
Nur bei Absenden der Daten landen die Formulardaten im Querystring und überschreiben sogar den von mir explizit gesetzten Query.

Leider steht weiter keine Dokumentation über das Verhalten zu start_form in der Dokumentation von CGI.

Habe ich einen Bug gefunden oder einfach nur etwas falsch gemacht?