#!/usr/bin/perl
#'
#'
#'
#'
# Define Variables
$mailprog = '/usr/sbin/sendmail';
$date = `/bin/date`;
chop($date);
# Set the recipient below
$recipient = 'forms@netphoria.com';
$sender = 'forms@netphoria.com';
$name = '';
$subject = 'WWW Form Submission';
$sError = "";
# Get the input
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
# Split the name-value pairs
@pairs = split(/&/, $buffer);
foreach $pair (@pairs){
($vname, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$vname =~ tr/+/ /;
$vname =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FORM{$vname} = $value;
# code to test for required variables
if (substr($vname,-9,9) eq "_required") {
if ($value eq "") {
$sError = $sError . "" . substr($vname,0,length($vname)-9) . " is a required field.
";
}
}
}
if ($FORM{'email'} ne "") {
$email = $FORM{'email'};
}
if ($FORM{'email_required'} ne "") {
$email = $FORM{'email_required'};
}
if ($FORM{'name'} ne "") {
$name = $FORM{'name'};
}
if ($FORM{'name_required'} ne "") {
$name = $FORM{'name_required'};
}
if ($FORM{'subject'} ne "") {
$subject = $FORM{'subject'};
}
if ($FORM{'subject_required'} ne "") {
$subject = $FORM{'subject_required'};
}
#--- test for valid email address ------
if ($FORM{'email_required'} ne "") {
if (!((index($FORM{'email_required'}, "@") > 1) && (rindex($FORM{'email_required'}, ".") > (index($FORM{'email_required'}, "@") + 1)))) {
$sError = $sError . "Please enter a valid email address.
";
}
}
if ( $sError ne "" ) {
print "Content-type: text/html\n\n";
print "
"; print $sError; print "
Please use the Back button of your browser to continue.
"; print ""; exit; } if ($buffer ne "") { # Open The Mail open(MAIL, "|$mailprog -t") || die "Can't open $mailprog!\n"; print MAIL "To: $recipient\n"; print MAIL "From: $email ($name)\n"; print MAIL "Subject: $subject\n\n"; print MAIL "Below is the result of your feedback form. It was\n"; print MAIL "submitted by $name ($email) on $date\n\n"; print MAIL "____________________________________________\n\n"; foreach $pair (@pairs) { ($vname, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $vname =~ tr/+/ /; $vname =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $FORM{$vname} = $value; unless ($vname eq 'Send.x' || $vname eq 'Send.y' || $vname eq 'subject' || $vname eq 'redirect') { # Print the MAIL for each name value pair if ($value ne "") { print MAIL "$vname: $value\n"; print MAIL "____________________________________________\n\n"; } } } close (MAIL); } if ($FORM{'redirect'}) { print "Location: $FORM{'redirect'}\n\n"; } else { # Print Return HTML print "Content-type: text/html\n\n"; print "