#!/usr/bin/perl read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); #open(FILE,"input2b.dat"); #read(FILE, $buffer, 200); #close(FILE); chomp($buffer); # Split the name-value pairs @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); # Un-Webify plus signs and %-encoding $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s///g; if ($allow_html != 1) { $value =~ s/<([^>]|\n)*>//g; } $FORM{$name} = $value; } $TargetFilename = $FORM{'TargetFilename'}; $MarkTag = $FORM{'MarkTag'}; $Function = $FORM{'Function'}; if ($Function eq "Write") { $NewContent = $FORM{'NewContent'}; } else { $CGI = $FORM{'CGI'}; } open (FILE,"$TargetFilename") || die "Can't Open $TargetFilename: $!\n"; @LINES=; close(FILE); $SIZE=@LINES; print "Content-type: text/html $Function $TargetFilename <!--$MarkTag-->

$Function $TargetFilename <!--Begin$MarkTag-->...<!--End$MarkTag-->

"; if ($Function eq "Read") { print "請在下面欄位中修改資料:

"; } elsif ($Function eq "Write") { open (FILE,">$TargetFilename") || die "Can't Open $TargetFilename: $!\n"; $inside = 0; for ($i=0;$i<$SIZE;$i++) { $_=$LINES[$i]; if ($inside == 1) { if (/^$/) { $inside = 0; print FILE $LINES[$i]; } } elsif (/^$/) { $inside = 1; print FILE $LINES[$i]; $NewContent =~ s/\n\n/

/g; $NewContent =~ s/\n/
/g; chomp($NewContent); print FILE $NewContent; print FILE "\n"; } else { print FILE $LINES[$i]; } } close(FILE); print "

"; }