hier ist der ganze dateischreiber so dass der zusammenhang auf jeden fall da ist:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#!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?<form name="form" method="get" action="dateischreiber.cgi"><input name="datei" size="40"><input type="hidden" name="func" value="writes"><input type="submit" value="Senden"></form>';
printfoot();
}
sub writes{
open(DATEI, "<$_[0]");
@zeilen = <DATEI>;
close(DATEI);
printhead('Datenschreiber');
print 'In der Datei "'.$_[0].'" steht folgendes:<br><br>';
my $i = 0;
foreach(@zeilen){
$i++;
my $einz = $_;
print "$einz".'<br>';
}
print '<br><br>Wollen sie etwas schreiben so geben sie es hier ein:<br><br><form name="form" method="get" action="dateischreiber.cgi"><textarea cols="40" rows="10" wrap=virtual name="text"></textarea><br><input type="hidden" name="func" value="writed"><input type="hidden" name="datei" value="'.$_[0].'"><input type="submit" value="Speichern"><input type="reset" value="Löschen"></form>';
printfoot();
}
sub writed{
open(DATS, ">>$_[0]");
print DATS "$_[1]";
close(DATS);
printhead('Datenschreiber');
$_[1] =~ s/\n/<br>/go;
print '<body><h1>Scheiben erfolgreich!</h1>In die Datei "'.$_[0].'" wurde folgendes geschrieben:<br><br>';
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 '<html>';
print '<head>';
print '<title>';
print $title;
print '</title>';
print '</head>';
}
sub printfoot
{
print '</body>';
print '</html>';
}
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;
}
war gedacht um zeilenumbrüche erst auf dem server zu ersetzen und nochmal zu schauen ob in der datei das richtige steht und eventuell zu verbessern ohne erst hochladen zu müssen
print uc 'i',chr(29*4).q+'s +.++($_=q-m-),++$_;
print chr for 116,$_[0],97,$_[0],98;
print 'ug,',chr(), scalar reverse qq?!erutaef a s'ti?;