#!Perl -w
##zusatz
use CGI::Carp qw(fatalsToBrowser);
$datens = &CGIDlesen;
%dat = &CGIDaufbereiter($datens);
if($dat{func} eq ''){ first(); }
if($dat{func}eq 'writes'){ writes($dat{datei}); }
if($dat{func} eq 'writed'){ writed($dat{datei}, $dat{text}); }
sub first{
printhead('Datenschreiber');
print 'In welche Datei soll geschrieben werden?
';
printfoot();
}
sub writes{
open(DATEI, "<$_[0]");
@zeilen = ;
close(DATEI);
printhead('Datenschreiber');
print 'In der Datei "'.$_[0].'" steht folgendes:
';
my $i = 0;
foreach(@zeilen){
$i++;
my $einz = $_;
print "$einz".'
';
}
print '
Wollen sie etwas schreiben so geben sie es hier ein:
';
printfoot();
}
sub writed{
open(DATS, ">>$_[0]");
print DATS "$_[1]";
close(DATS);
printhead('Datenschreiber');
$_[1] =~ s/\n/
/go;
print 'Scheiben erfolgreich!
In die Datei "'.$_[0].'" wurde folgendes geschrieben:
';
print $_[1];
printfoot();
}
sub CGIDlesen
{
local $cgidaten;
if( $ENV{REQUEST_METHOD} eq 'POST')
{
read(STDIN, $cgidaten , $ENV{'CONTENT_LENGHT'});
}
else
{
$cgidaten = $ENV{QUERY_STRING};
}
return $cgidaten;
}
sub printhead
{
local $title = $_[0];
print "Content-type: text/html\n\n";
print '';
print '';
print '';
print $title;
print '';
print '';
}
sub printfoot
{
print '';
print '';
}
sub CGIDaufbereiter
{
local ($cgidatenskalar, $name, $daten);
local @cgidatenliste;
local %cgidatenhash;
if( $_[0] )
{
$cgidatenskalar = $_[0];
@cgidatenliste = split(/[&;]/ , $cgidatenskalar);
foreach $listeneintrag (@cgidatenliste)
{
$listeneintrag =~ s/\+/ /go;
($name, $daten) = split( /=/ , $listeneintrag );
$name =~ s/\%(..)/pack("c",hex($1))/ge;
$daten =~ s/\%(..)/pack("c",hex($1))/ge;
$cgidatenhash{$name} = $daten;
} }
return %cgidatenhash;
}