#!/usr/bin/perl
print "Content-type:text/html\n\n";
$FORM{'fulltxtpath'} = stripmeta("../www$ENV{'QUERY_STRING'}");
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}
foreach $key (keys(%FORM)) {
if ($key =~ /required/i) {if ( ($FORM{$key} eq "") && ($FORM{$key} == "") ) {failure();}}
}
open INF, $FORM{'fulltxtpath'} or dienice("Cant open $FORM{'fulltxtpath'}");
seek(INF,0,0);
@fary = ;
close (INF);
foreach $key (keys(%FORM)) {
$rep = $FORM{$key};
foreach $i (@fary) {$i =~ s/\[$key\]/$rep/g;}
}
$mailprog = '/usr/lib/sendmail';
open (MAIL, "|$mailprog -t") or dienice("Can't access $mailprog!\n");
foreach $i (@fary) { print MAIL "$i"; }
close (MAIL);
$FORM{'success'} =~ s/https\:\/\/www.mydomain.com/..\/www/g;
open INF, $FORM{'success'} or dienice("Cant open $FORM{'success'}");
seek(INF,0,0);
@succtxt = ;
close (INF);
foreach $i (@succtxt) { print "$i"; }
exit;
sub stripmeta {
my($var1) = @_;
@meta = ('&',';','`','\'','\\',
'"','|','*','?','~','<','>',
'^','(',')','[',']','{','}','$');
$var1 =~ s/\n/ /g; $var1 =~ s/\r/ /g;
foreach $met (@meta){ $var1 =~ s/\Q$met\E/ /g; }
return $var1
}
sub failure {
$FORM{'failure'} =~ s/https\:\/\/www.mydomain.com/..\/www/g;
open INF, $FORM{'failure'} or dienice("Cant open $FORM{'failure'}");
seek(INF,0,0);
@failtxt = ;
close (INF);
foreach $i (@failtxt) { print "$i"; }
exit;
}
sub dienice {
my($errmsg) = @_;
my($webmaster) = 'webmaster@mydomain.com';
print <Error!!The error was $errmsg