Formularauswertung: Multiple Select Menü über Perl auslesen
Jan
- perl
Hallo wer kann mir helfen?
Wollte ein Multiple Select Menue auslesen, das aussieht wie folgt:
<select name="fsk" multiple size="1">
<optgroup label="-bitte auswählen-">
<option value="fsk[0]">unbeschränkt</option>
<option value="fsk[1]">ab 6 Jahre</option>
<option value="fsk[2]">ab 12 Jahre</option>
<option value="fsk[3]">ab 16 Jahre</option>
<option value="fsk[4]">ab 18 Jahre</option>
</optgroup>
</select>
dann den Inhalt splitten und darauf in eine Datei einlesen(Es darf immer nur ein Wert übergeben werden).
Wie das Ganze für die anderen Text und Formularfelder aussieht,
ist hier zu sehen:
sub new {
my $guest ="" ;
my $buffer ="" ;
my @paare ="" ;
my $paar ="" ;
my $val1 ="" ;
my $val2 ="" ;
my $key ="" ;
#my $fsk;
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@paare = split(/&/, $buffer);
foreach $paar (@paare){
($val1, $val2) = split(/=/, $paar);
$val1 =~ tr/+/ /;
$val1 =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$val2 =~ tr/+/ /;
$val2 =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$val2 =~ s/<([^>]|\n)*>/ /g;
$FM{$val1} = $val2;
}
#########################################################################################
if ((!$FM{'name'} || !$FM{'beschreibung'}) || ($FM{'beschreibung'} && length($max_length)>$max_length && $max_length > 0 )) {
&er_form() ;
} else {
foreach $key (keys %FM) {
$FM{$key} =~ s/&/&/g;
$FM{$key} =~ s/"/"/g;
$FM{$key} =~ s/\cM\n/<BR>/g;
$FM{$key} =~ s/\n\cM/<BR>/g;
$FM{$key} =~ s/\cM/<BR>/g;
$FM{$key} =~ s/\n/<BR>/g;
$FM{$key} =~ s/\s+/ /g;
$FM{$key} =~ s/\s+/ /g;
$FM{$key} =~ s/^\s+//g;
$FM{$key} =~ s/\s+$//g;
}
##########################################################################
#Variablen werden in die Datei eingelesen (hier: warez.txt) #
##########################################################################
$guest = "$datsort|$FM{'name'}|$FM{'beschreibung'}|$FM{'darsteller'}|$FM{'mb'}|$FM{'link1'}|$FM{'link2'}|$FM{'link3'}|$FM{'link4'}|$ndate|" ;
open (DATNEW , ">>$dat_file") ;
&LockFile(DATNEW);
print DATNEW "$guest\n" ;
close (DATNEW) ;
Ps: Werte für das Menü oben sind noch nicht festgelegt worden bis auf die name="fsk".
Wäre sehr Dankbar wenn mir da jemand helfen könnte!
Mfg
Allu
Hi,
Hallo wer kann mir helfen?
der Autor von CGI.pm.
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
[...]
Warum so kompliziert? In
perldoc CGI
erfährst Du, wie Du extrem simpel Parameter auslesen kannst - weit weniger fehleranfällig wie Dein Code, und auch kompatibel zu multiple selects.
Cheatah
perldoc CGI
???
wo kann ich das finden?
Hi,
perldoc CGI
wo kann ich das finden?
auf jedem Rechner, der Perl installiert hat. Soll das heißen, dass Du nicht mal _weißt_, dass eine brauchbare Programmiersprache grundsätzlich mit einer Dokumentation ausgeliefert wird? In dem Fall solltest Du in Dein System insbesondere auch folgendes eingeben:
perldoc perl
perldoc perldoc
perldoc perlfaq
perldoc perlstyle
Cheatah
Hi,
wenn ich fragen darf, wo hast du Perl gelernt, da du weder das CGI Modul verwendest, noch weist wo man das nachlesen kann ? (soll nicht böse gemeint sein)
öffne deine Eingabeaufforderung und tippe perldoc cgi ein oder gehe nach
http://www.perldoc.com
Hi,
wenn ich fragen darf, wo hast du Perl gelernt, da du weder das CGI Modul verwendest, noch weist wo man das nachlesen kann ? (soll nicht böse gemeint sein)
öffne deine Eingabeaufforderung und tippe perldoc cgi ein oder gehe nach
http://www.perldoc.com
vielleicht hätte ich meinem Posting noch hinzufügen sollen, das es sich nur um einen Ausschnitt handelt ;)
Hi,
vielleicht hätte ich meinem Posting noch hinzufügen sollen, das es sich nur um einen Ausschnitt handelt ;)
das war uns schon klar und ändert nichts an den Antworten :-)
Cheatah
P.S.: Dein Script sollte übrigens mit
#!/usr/bin/perl -w
use strict;
beginnen. Was das bedeutet, erfährst Du in
perldoc perlrun
perldoc strict
use Mosche;
öffne deine Eingabeaufforderung und tippe perldoc cgi ein
matti@matti:~> perldoc cgi
No documentation found for "cgi".
*SCNR*
use Tschoe qw(Matti);