Thread Parameterübergabe in Perl / CGI verwirft #
(11 answers)
Opened by amun-ra198 at 2007-10-11 16:22
Hallo,
ich habe ein Problem mit dem Maskieren von Werten in CGI / Perl. Ich hole mit einem Perl Skript Werte aus einer Datenbank und übergebe diese Werte an ein weiteres Skript, dass diese dann weiterverarbeiten soll. Enthält einer der Werte ganz bestimmte Sonderzeichen (z.B. & oder #) werden alle weiteren Zeichen und Werte dahinter verworfen. Ich vermute, dass es sich um ein Problem beim Maskieren von Sonderzeichen in CGI handelt: Skript1: Code (perl): (dl
)
1 2 3 4 5 6 use DBI; use CGI; my $cgi = new CGI; ... while ( my @dsnum = $sth->fetchrow_array ) # Zugriff auf DB Werte {<a href=\"../cgi-bin/skript2.pl?param0=$dsnum[1]¶m1=$dsnum[2]¶m2=$dsnum[3]¶m3=$dsnum[4]¶m4=$dsnum[5]¶m5=$dsnum[6]¶m6=$dsnum[7]¶m7=$dsnum[8]¶m8=$dsnum[0]\">aendern</a>} Skript2: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 my $name = $cgi->param('param0'); my $kategorie = $cgi->param('param1'); my $unterkategorie = $cgi->param('param2'); my $benutzer = $cgi->param('param3'); my $passwort = $cgi->param('param4'); my $ersteller = $cgi->param('param5'); my $kommentar = $cgi->param('param7'); my $id = $cgi->param('param8'); print "In $name sind \& und \# schon verworfen worden"; Vielleicht hat ja jemand eine Idee wie ich die Parameter weiter verarbeiten muss, damit alle Zeichen erhalten bleiben. Ich hatte zunächst versucht die entsprechenden Sonderzeichen durch einen \ zu maskieren, was normalerweise in Perl auch funktioniert, hat leider nicht geklappt. Weitere Ideen sind willkommen danke |