Thread Programmierung eines vernetzten Eingabeformulars
(4 answers)
Opened by Gast at 2005-01-11 15:53
Okay, danke für die Tipps!
Habe ein Code-Beispiel aus dem angegebenen Tutorial auf einem Apache Server ausprobiert. Das hier ist meine html-Seite: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Kommentarseite</title> </head> <body bgcolor="#E0E0E0"> <h1>Ihr Kommentar</h1> <form action="/cgi-bin/comments.pl" method="post"> <p>Name:<br><input size="40" maxlength="40" name="AnwenderName"></p> <p>Text:<br><textarea rows="5" cols="50" name="Kommentartext"></textarea></p> <p><input type="submit" value="Absenden"></p> </form> </body> </html> Und das hier mein CGI/PERL Skript: #!/usr/bin/perl -w use strict; use CGI::Carp qw(fatalsToBrowser); read(STDIN, my $Daten, $ENV{'CONTENT_LENGTH'}); open(PRINTIT,">/usr/local/daten.txt"); print PRINTIT "foo"; close(PRINTIT); my @Formularfelder = split(/&/, $Daten); my ($Feld, $Name, $Wert); my %Formular; foreach $Feld (@Formularfelder) { (my $Name, my $Wert) = split(/=/, $Feld); $Wert =~ tr/+/ /; $Wert =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $Wert =~ s/</</g; $Wert =~ s/>/>/g; $Formular{$Name} = $Wert; } print "Content-type: text/html\n\n"; print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">', "\n"; print "<html><head><title>CGI-Feedback</title></head>\n"; print "<body><h1>CGI-Feedback vom Programm <i>comments.pl</i></h1>\n"; print "<p><b>Name:</b> $Formular{AnwenderName}</p>\n"; print "<p><b>Kommentartext:</b> $Formular{Kommentartext}</p>\n"; print "</ Mein Problem ist nur, dass ich keine Datei erstellt bekommen, in die ich die über das Formular eingegebenen Daten ablegen kann. Die Zeilen: open(PRINTIT,">/usr/local/daten.txt"); print PRINTIT "foo"; close(PRINTIT); sollten im Perl-Skript meines Erachtens ausreichen um eine Datei zu erstellen?! Oder gibt's da evtl. Probleme mit Schreibrechten (der angegebene Ordner hat sämtliche Schreibrechte/Ausführbarkeiten? |