#!/usr/bin/perl ## ## Set Variables ## $filename = "form"; ## ## Start the program ## print "Content-type:text/html\n\n"; &printTopHTML(); &readFormData(); &checkRequired(); $_ = $form{'action'}; if (/^showPage$/) { &printForm(); } if (/^Submit$/) { if(¬FilledOut) { &printForm(); } else { &mailForm(); } } &printBottomHTML(); ## ## Subroutines ## sub mailForm { $date = `/bin/echo | /usr/contrib/bin/timestamp -f '%a, %B %e, %Y'`; if($form{'guestbook-country'} eq "") { $form{'guestbook-country'} = "United States"; } open(MAIL, "|/usr/sbin/sendmail -t") or die print "Can't send.."; print MAIL "To: admin\@bonniebraefarms.com\n"; print MAIL "From: $form{'guestbook-name'} (Guestbook Entry) <$form{'guestbook-email'}>\n"; # print MAIL "Reply-to: $form{'guestbook-name'} <$form{'guestbook-email'}>\n"; print MAIL "Subject: Guestbook Entry - $date\n\n"; print MAIL "Automated guestbook message.\n\n"; print MAIL "Name: $form{'guestbook-name'}\n"; print MAIL "E-mail: $form{'guestbook-email'}\n"; print MAIL "City: $form{'guestbook-city'}\n"; print MAIL "State: $form{'guestbook-state'}\n"; print MAIL "Country: $form{'guestbook-country'}\n"; if($form{'doNotSendMail'} eq "true") { print MAIL "Do not send this person e-mail.\n"; $form{'doNotSendMail'} = "No"; } else { print MAIL "It is OK to e-mail this person.\n"; $form{'doNotSendMail'} = "Yes"; } if($form{'doNotListName'} eq "true") { print MAIL "Do not list this person.\n"; $form{'doNotListName'} = "No"; } else { print MAIL "It is OK to list this person.\n"; $form{'doNotListName'} = "Yes"; } close(MAIL); $string = "$form{'guestbook-name'}\t$form{'guestbook-email'}\t$form{'guestbook-city'}\t$form{'guestbook-state'}\t$form{'guestbook-country'}\t$form{'doNotSendMail'}\t$form{'doNotListName'}"; `echo "$string" >> guestbook_entries.txt`; print <Thank you for signing the guestbook.
Click here to return to the Bonnie Brae Website.

end ; } sub checkRequired { open(INF, $filename); $_ = ; close(INF); s//$1/; @required = split(/,/,$_); pop(@required); } sub notFilledOut { foreach $_ (@required) { if($form{$_} eq "") { $status = 1; }; } return $status; } sub printTopHTML { print < Bonnie Brae Guestbook
Bonnie Brae Guestbook
end ; } sub readFormData { if($ENV{'CONTENT_LENGTH'}) { 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; } } else { $form{'action'} = "showPage"; } } sub printBottomHTML { print <

[ Home | Mail ]

end ; } sub printForm { @html = `cat form`; foreach $_ (@html) { $selected = ""; s/#value-(\S+)#/$form{$1}/; if (//) { if($2 eq $form{$1}) { $selected = " selected"; } s//