#!/usr/bin/perl use CGI ; # Script by Julien Cadiou - 15/09/1999 - julienc@vicnet.net.au # FOR FREE USE ! # ---------------------------------- # | Tweakable variables | # ---------------------------------- # Path to web root - "/export/home" or "/usr/local/htdocs" $webpath="path_to_web_root"; # Path to mail program - "/usr/lib/sendmail" $mailprog="path_to_mail_program"; # Default values if not supplied in the form: $email="name\@domain.com.au"; $header="header.txt"; $footer="footer.txt"; # Regarding $header and $footer, be sure to place a default header.txt # and footer.txt at the top of your web root, in case specific headers # and/or footers are not specified in the form as hidden tags $return_link = "http://www.domainxxxxx.com.au/"; $return_name = "My website"; $email_subject = "Online Form Processed"; ################################################################ my ($query,@names,%parameters,$missingFields); $query = new CGI ; @names = $query->param; foreach (@names) { $parameters{"$_"}=$query->param("$_"); } # Assign in place of defaults if supplied if ($parameters{"destination email"}) { $email = $parameters{"destination email"}; } if ($parameters{header}) { $header = $parameters{header}; } if ($parameters{footer}) { $footer = $parameters{footer}; } if ($parameters{"return link"}) { $return_link = $parameters{"return link"}; } if ($parameters{"return name"}) { $return_name = $parameters{"return name"}; } if ($parameters{"email subject"}) { $email_subject = $parameters{"email subject"}; } if ($parameters{required}) { my (@required,$j,@testFields,$i,%fieldsRequired); @required = split(/\*\*/,$parameters{required}); $j=0; while ($j<@required) { my ($key,$value) = split(/\-\-/,$required[$j]); $fieldsRequired{$key}="$value"; $testFields[$j]=$key; $j++; } $i=0; while ($i<@testFields) { if ($parameters{$testFields[$i]} eq "") { $missingFields.="
  • $fieldsRequired{$testFields[$i]}
    \n"; } $i++; } } sub printHTML { my $file="@_"; open (readHTML, "<$webpath/$file") || die "could not open the $file file\n"; while () { chomp ; next if /^$/ ; print "$_\n"; } close(readHTML); return 1; } print "Content-type:text/html\n\n"; &printHTML("$header"); if ($missingFields) { print <<__eof__; You did not fill in all required fields:

    Return to form entry
    __eof__ &printHTML("$footer"); } else { print "The form was submitted - Here is the information you provided\n
    \n\n"; foreach (@names) { if (($_ eq "required") || ($_ eq "header") || ($_ eq "footer") || ($_ eq "destination email") || ($_ eq "return link") || ($_ eq "return name") || ($_ eq "email subject")) { next; } print "\n\n"; if ($parameters{"$_"}) { print "\n\n"; } else { print "\n\n"; } } print "
    $_$parameters{\"$_\"}
    Not Provided
    \n"; print "
    $return_name
    \n
    \n"; &printHTML("$footer"); # Send the email open (MAIL, "|$mailprog") || die "Can't open $mailprog!\n"; print MAIL <<__EOF__; From: FormMaster To: $email Subject: $email_subject __EOF__ foreach (@names) { if (($_ eq "required") || ($_ eq "header") || ($_ eq "footer") || ($_ eq "destination email") || ($_ eq "return link") || ($_ eq "return name") || ($_ eq "email subject")) { next; } print MAIL "$_ : "; if ($parameters{"$_"}) { print MAIL "$parameters{\"$_\"}\n"; } else { print MAIL "Not Provided\n"; } } close (MAIL); }