Hello Group

Thanks to your help I have a form that works.  Now I would like to make sure
that the users name and email address have data.  I thought it was straight
forward but I am missing something.  The code is below.  I thought that you
put the code before the mail is open?  That is not working so I tried it
afterward.  That did not work either.  Could someone tell me what I missed?
Please!

#!/usr/bin/perl

print "Content-type:text/html\n\n";

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;
}
$mailprog = '/usr/sbin/sendmail';

# change this to your own email address

$recipient = '[EMAIL PROTECTED]';

# this opens an output stream and pipes it directly to the sendmail
# program.  If sendmail can't be found, abort nicely by calling the
# dienice subroutine (see below)

# I added the error checking below on 02/16/01

if ($FORM { ' name ' } eq " "  ) {
 dienice("Please fill out your name and e-mail address so we can return the
information back to you.");
}

open (MAIL, "|$mailprog -t") or &dienice("Can't access $mailprog!\n");

# here we're printing out the header info for the mail message. You must
# specify who it's to, or it won't be delivered:

print MAIL "To: $recipient\n";

print MAIL "From: <>Web Form\n";

# Reply-to can be set to the email address of the sender, assuming you
# have actually defined a field in your form called 'email'.

print MAIL "Reply-to:Ken Fair $FORM{'email'} ($FORM{'name'})\n";

# print out a subject line so you know it's from your form cgi.
# The two \n\n's end the header section of the message.  anything
# you print after this point will be part of the body of the mail.

print MAIL "Subject: Form Data\n\n";

# here you're just printing out all the variables and values, just like
# before in the previous script, only the output is to the mail message
# rather than the followup HTML page.

foreach $key (keys(%FORM)) {
    print MAIL "$key = $FORM{$key}\n";
}

# when you finish writing to the mail message, be sure to close the
# input stream so it actually gets mailed.

close(MAIL);

# now print something to the HTML page, usually thanking the person
# for filling out the form, and giving them a link back to your homepage

print <<EndHTML;
<h2>Thank You</h2>
Thank you for writing.  Your mail has been delivered.<p>
Return to our <a href="http://members.nbci.com/flwriters/join.html">Join
Page</a>.
</body></html>
EndHTML

sub dienice {
    ($errmsg) = @_;
    print "<h2>Error</h2>\n";
    print "$errmsg<p>\n";
    print "</body></html>\n";
    exit;
}

Thanks,
Ken Fair
[EMAIL PROTECTED]

_______________________________________________
ActivePerl mailing list
[EMAIL PROTECTED]
http://listserv.ActiveState.com/mailman/listinfo/activeperl

Reply via email to