********BJSubmit******** #!/bin/perl # # BJsumbit - perl script which allows submittals # of "Big Johnson" T-shirt phrases # # by: Eric Hall # unshift(@INC,'/usr/local/etc/httpd/cgi-bin'); # Get the input read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); # Split the name-value pairs @pairs = split(/&/, $buffer); # Uncommend for debugging purposes #print "Content-type: text/html\n\n"; 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; #want to skip submissions of default values next if (grep(/\?\?\?\?\?/,$value)); # Stop people from using subshells to execute commands # Not a big deal when using sendmail, but very important # when using UCB mail (aka mailx). $value =~ s/~!/ ~!/g; # Uncomment for debugging purposes #print "Setting $name to $value
"; $FORM{$name} = $value; } # If the comments are blank, then give a "blank form" response &blank_response unless $FORM{'name'}; &blank_response unless $FORM{'phrase'}; # Print a title and initial heading print "Content-type: text/html\n\n"; print "
Big Johnson is greatly appreciative of your suggestion.
\n";
print "Click here to see it active.\n";
$BJdir = "/usr/local/etc/httpd/htdocs/duck";
rename("$BJdir/BigJohn.html","$BJdir/BigJohn.old");
open (INS,"$BJdir/BigJohn.old");
open (OUTS,">$BJdir/BigJohn.html");
#echo original to new
while() {
#only when we've reached the end do we tack on the new stuff
if(grep(/--the end--/,$_)) {
print OUTS "