Hello, I have one updated a script to use the following '-f' flag as a way of preventing SPAM relaying, and it is working fine,
open(MAIL,"|$mailprog -t -f" . $recipient); How ever in the following script &release_risk_html; never gets returned! # with # open(MAIL,"|$mailprog -t"); # it works correctly but not with: # open(MAIL,"|$mailprog -t -f" . $recipient); Can anyone see why this failing? Thanks, Dave Gilden ##### the script ##### #!/usr/bin/perl use CGI qw/:standard/; use CGI::Carp qw(fatalsToBrowser); use POSIX 'strftime'; $mailprog = '/usr/lib/sendmail'; @referers = ('kayaking.net'); my $recipient = 'webmaster\@kayaking.net, josiem\@kayaking.net'; my $participants_email; my $qs = $ENV{'QUERY_STRING'}; $line = "=" x72; # Line Separator ######################################## foreach my $key ( param() ) { my $value = param($key); # Fetch the parameter value $value =~ s/^\s+|\s+$//g; # Strip whitespaces param( $key, $value ); # Reassigning the value in the parameter } #################################### # Retrieve Date $date = strftime('%A, %B %d, %Y %I:%M %p',localtime) ,"\n"; my $mail_branch =0; if ( param('step1') ) { # release_risk # Send E-Mail &send_mail; &release_risk_html; # print redirect("http://www.kayaking.net/pages/release_risk.html"); } elsif ( param('step2') ) { # Reg info $mail_branch =1; # Send E-Mail &send_mail; print redirect('http://www.kayaking.net/pages/reg_payment_options.html'); } elsif ( param('medical') ) { # Medical info $mail_branch =2; # Send E-Mail &send_mail; print redirect('http://www.kayaking.net/pages/medinfo_step2.html'); } exit; # Check Referring URL # &check_url; # Parse Form Contents # &parse_form; # Check Required Fields # &check_required; # Return HTML Page or Redirect User # &return_html; sub send_mail { $participants_email = param('email'); # Open The Mail Program #open(MAIL,"|$mailprog -t -f" . $recipient); # this change kills the # &release_risk_html, open(MAIL,"|$mailprog -t"); # works correctly print MAIL "To: $recipient\n"; print MAIL "From: $participants_email (" , param('name1') , ")\n"; if (!$mail_branch) { # reg step 1 my $subject = param("subject") . " for " . param('name1') . "\n"; print MAIL "Subject: $subject\n\n"; print MAIL "$subject\n"; print MAIL "$date\n"; print MAIL "-" x 72 . "\n\n"; foreach my $key (param()){ print MAIL "-" x72,"\n\n" if $key =~ /name1/i; last if $key =~ /step\d/i; $val = param($key), $key =~ s/\d$//; $key =~ s/(.+)/\u$1/; # Upper Case First letter # $key =~ s/(.+)/\u$1/; print MAIL "$line\n\n" if $key =~ /participant/i; print MAIL "$key: $val\n\n"; } print MAIL "\n\n"; print MAIL "$line\n" ; print MAIL <<PAYMENT; Payment Options: $line Donation: Idaho Rivers United _____ Idaho Watchable Wildlife _____ Rock Creek Alliance _____ Donation amount: \$_______ PAYMENT print MAIL "$line\n\n"; print MAIL <<PAYMENT; Tour / Rental / Class Fees 5% Sales Tax: \$_______ Deposit: \$_______ Total: \$_______ Payment Method: Check ___ Money Order ___ Credit Card ___ Card: Card Number: Expiration date: PAYMENT } elsif ($mail_branch == 1) { # Step 2 my $sig_string = "\nSignature: " . "_"x30 . " Date: " . "_" x20 . "\n\n$line\n\n"; $subject = "Release & Risk Agreement for " . param('name1') . "\n"; print MAIL "Subject: $subject\n\n"; print MAIL <<RELEASE_AND_RISK; FULL SPECTRUM TOURS INC. RELEASE AND ASSUMPTION OF RISK AGREEMENT Please read and consider this release carefully and fill out the form below. ---snip----. 9. I have had sufficient opportunity to read this entire document and understood it, and I agree to be bound by its terms. I have further read and understand all terms and conditions stated in the FST Polices, including those relating to reservations, cancellations, and refunds. RELEASE_AND_RISK foreach my $key (param()){ last if ($key =~ /child|parent/i); $val = param($key), $key =~ s/\d$//; $key =~ s/(.+)/\u$1/; # Upper Case First letter print MAIL "$key: $val\n\n"; # print MAIL $sig_string if ($key =~ /name|parent/i); print MAIL $sig_string if ($key =~ /phone/i); } print MAIL<<LEGAL; In consideration of minors listed below being permitted by FST to participate in it's activities, and or use rental equipment owned by FST, I further agree to indemnify and hold harmless FST, from any and all claims which are brought by or on behalf of minor and which are in any way connected with such participation by minor. LEGAL foreach my $key (param()){ next if $key !~ /(parent|youth)/i; last if $key =~ /step\d/i; $val = param($key), $key =~ s/\d$//; print MAIL "$key: $val\n\n"; print MAIL $sig_string if ($key =~ /youth/i); } } elsif ($mail_branch == 2) { # Medical my $subject = "Medical Info for: " . param('name') . "\n"; print MAIL "Subject: $subject\n\n"; print MAIL "$subject\n"; print MAIL "$date\n"; print MAIL "-" x 75 . "\n\n"; foreach my $key (param()){ last if $key =~ /medical/i; $val = param($key), # $value =~ s/^\s+//; # $value =~ s/\s+$//; $key =~ s/\d$//; print MAIL "$key: $val\n\n"; } } close (MAIL); } sub release_risk_html { print header; # Print HTTP header and opening HTML tags. print <<HTML_OUT; <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd"> <html> <head> <title>FST: Release And Assumption Of Risk Agreement</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <script language="JavaScript" type="text/javascript"> <!-- if ((navigator.appVersion.indexOf("Mac") != -1)) { document.write('<link rel="stylesheet" href="../css/cc_mac.css" type="text/css">'); } else { document.write('<link rel="stylesheet" href="../css/cc_win.css" type="text/css">'); } // --> </script> <style type="text/css" media="screen"> \@import "/css/list.css"; </style> </head> <body bgcolor="#ffffff"> <form method="post" action="../cgi-bin/registration.cgi"><a name="top"></a> <table width="640" border="0" cellspacing="0" cellpadding="0"> <tr valign="top" align="center"> <td bgcolor="#99CCFF" width="10"> </td> <td bgcolor="#99CCFF" width="150"><a href="/"><img src="../images/kayak_anm.gif" alt=" Full Spectrum Tours home of Kayaking.net " width="140" height="124" vspace="10" border="0"></a> </td> <td width="10"><!-- margin --> </td> <td><br> <div align="center"><img src="../images/fsglasslogo.gif" width="280" height="134" border="0" alt=" Full Spectrum Tours Inc. Sandpoint, Idaho "></div> </td> </tr> <tr valign="top"> <td bgcolor="#99CCFF" width="10"> </td> <td bgcolor="#99CCFF" width="150"><!-- Start Left Nav Bar --> <p class="navbar"><a href="location.html">Location</a></p> <p class="navbar"><a href="tours.html">Tours</a></p> <p class="navbar"><a href="rentals.html">Rentals</a></p> <p class="navbar"><a href="classes.html">Classes</a></p> <p class="navbar"><a href="just_4_kids.html">Just For Kids</a></p> <p class="navbar"><a href="special_sales.html">Sales & Specials</a></p> <p class="navbar"><a href="product_list.html">Manufacture's Links</a></p> <p class="navbar"><a href="ourstaff.html">Meet Our Staff</a></p> <p class="navbar"><a href="/cgi-bin/events_schedule.cgi">Events Schedule</a></p> <!-- End of Left Nav Bar --></td> <td width="10"> </td> <td rowspan="2"><br clear="all"> <p class="header" style="font-weight:bold">Full Spectrum Tours, Inc. asks that you please read and consider this release carefully.</p> <h3 class="item" style="font-size:95%;">RELEASE AND ASSUMPTION OF RISK AGREEMENT</h3> <p>In consideration of the services of Full Spectrum Tours, Inc., their agents, owners, officers, volunteers, participants, employees, and all other persons or entities acting in any capacity on their behalf (hereinafter collectively referred to as "FST"), I hereby agree to release and discharge FST, on behalf of myself, my children, my parents, my heirs, assigns, personal representative and estate as follows:</p> <ol> <li>I acknowledge that kayaking entails known and unanticipated risks which could result in physical or emotional injury, paralysis, death, or damage to myself, my property, or to third parties. I understand that such risks simply cannot be eliminated without jeopardizing the essential qualities of this activity. The risks include, among other things, physical exertion, inclement weather, capsizing of kayaks, immersion in water, accidents or illness in remote areas, equipment failure and malfunction, drowning, accidents involving third parties unknown to FST, loss or damage to personal property. Furthermore,</li> <li>I expressly agree and promise to accept and assume all of the risks existing in this activity. My participation in this activity is purely voluntary, and I elect to participate in spite of the risks.</li> <li>I hereby voluntarily release, forever discharge, and agree to indemnify and hold harmless FST from any and all claims, demands, or causes of action, which are in any way connected with my participation in this activity or my use of FST's equipment or facilities, including any such claims which allege negligent acts or ----snip---- <li>I have had sufficient opportunity to read this entire document and understood it, and I agree to be bound by its terms. I have further read and understand all terms and conditions stated in the <a href="/pages/reservation_policies.html" target="_blank">FST Polices</a>, including those relating to reservations, cancellations, and refunds.</li> </ol> <p class="header" style="font-weight:bold;">If you agree to the above, please fill out this form.</p> <p style="font-size:80%;">At our meeting place you will be asked to sign and date a printed version of this form</p> <table border="0" width="100%" cellspacing="6" cellpadding="0"> <!-- Person 1 --> <tr> <td>Name:</td> <td><input maxlength="100" name="name1" type="text" size="50"> </td> </tr> <tr> <td>Address:</td> <td> <input maxlength="100" name="address" type="text" size="50"> </td> </tr> <tr> <td>City:</td> <td> <input maxlength="100" name="city" type="text" size="50"> </td> </tr> <tr> <td>State:</td> <td> <input maxlength="100" name="state" type="text" size="50"> </td> </tr> <tr> <td>Zip:</td> <td> <input maxlength="100" name="zip" type="text" size="12"> </td> </tr> <tr> <td>Phone:</td> <td> <input maxlength="100" name="Phone1" type="text" size="50"> </td> </tr> </table> <br> <table border="0" width="100%" cellspacing="6" cellpadding="0"> <tr> <th colspan="2">Additional Participants</th> </tr> <!-- Person 2 --> <tr> <td>Name:</td> <td> <input maxlength="100" name="name2" type="text" size="50"> </td> </tr> <tr> <td>Street Address:</td> <td> <input maxlength="100" name="street-address2" type="text" size="50"> </td> </tr> <tr> <td>City, State, Zip</td> <td> <input maxlength="100" name="location2" type="text" size="50"> </td> </tr> <tr> <td>Phone:</td> <td> <input maxlength="100" name="Phone2" type="text" size="50"> </td> </tr> <tr> <td colspan="2"> </td> </tr> <!-- Person 3 --> <tr> <td>Name:</td> <td> <input maxlength="100" name="name3" type="text" size="50"> </td> </tr> <tr> <td>Street Address:</td> <td> <input maxlength="100" name="street-address3" type="text" size="50"> </td> </tr> <tr> <td>City, State, Zip</td> <td> <input maxlength="100" name="location3" type="text" size="50"> </td> </tr> <tr> <td>Phone:</td> <td> <input maxlength="100" name="phone3" type="text" size="50"> </td> </tr> <tr> <td colspan="2"> </td> </tr> <!-- Person 4 --> <tr> <td>Name:</td> <td> <input maxlength="100" name="name4" type="text" size="50"> </td> </tr> <tr> <td>Street Address:</td> <td> <input maxlength="100" name="street-address4" type="text" size="50"> </td> </tr> <tr> <td>City, State, Zip</td> <td> <input maxlength="100" name="location4" type="text" size="50"> </td> </tr> <tr> <td>Phone:</td> <td> <input maxlength="100" name="phone4" type="text" size="50"> </td> </tr> </table> </td> </tr> <tr valign="top"> <td bgcolor="#99CCFF" width="10"> </td> <td bgcolor="#99CCFF" align="center"><a href="http://www.weather.com/weather/local/83864" target="_blank"><br> <img src="../images/weather_ch.gif" width="74" height="62" alt=" Visit the Weather Channel "></a> <br> <p class="header">Visit the Weather Channel for current Sandpoint weather</p> </td> <td width="10"> </td> </tr> <tr valign="top" align="center"> <td bgcolor="#99CCFF" width="10"> </td> <td bgcolor="#99CCFF" align="center"></td> <td width="10"> </td> <td><br> <p class="header" style="font-weight:bold;"><a name="youth">Parent or Guardian's</a> Additional Indemnification (must be completed for particpants under the age of 18)</p> <table border="0" width="100%" cellspacing="6" cellpadding="0"> <tr> <td>In consideration of minors listed below being permitted by FST to participate in it's activities, and or use rental equipment owned by FST, I further agree to indemnify and hold harmless FST, from any and all claims which are brought by or on behalf of minor and which are in any way connected with such participation by minor.</td> </tr> </table> <table border="0" width="100%" cellspacing="6" cellpadding="0"> <tr> <td>Parent / Guardian</td> <td> <input maxlength="100" name="Parent1" type="text" size="50"> </td> </tr> <tr> <td>Participants Name:</td> <td> <input maxlength="100" name="Youth1" type="text" size="50"> </td> </tr> <tr> <td colspan="2"> </td> </tr> <tr> <th colspan="2">Additional Participants</th> </tr> <tr> <td>Parent / Guardian</td> <td> <input maxlength="100" name="Parent2" type="text" size="50"> </td> </tr> <tr> <td>Participant's Name:</td> <td> <input maxlength="100" name="Youth2" type="text" size="50"> </td> </tr> <tr> <td colspan="2"> </td> </tr> <tr> <td>Parent / Guardian</td> <td> <input maxlength="100" name="Parent3" type="text" size="50"> </td> </tr> <tr> <td>Participant's Name:</td> <td> <input maxlength="100" name="Youth3" type="text" size="50"> </td> </tr> </table> <br> <div align="center"> <input type="submit" name="step2" value="Send Registration Information"></div> </td> </tr> <tr valign="top"> <td bgcolor="#99CCFF" width="10"> </td> <td bgcolor="#99CCFF" align="center" valign="bottom"><br> <p><input type="button" value="Top of current page" onClick="location.hash='top'"></p> <br> </td> <td width="10"> </td> <td><br><div align="center">Full Spectrum Tours<br> PO Box 2003<br> Sandpoint, Idaho 83864<br> Tel: 208-263-5975 <br> Email: <a href="mailto:webguide\@kayaking.net">webguide\@kayaking.net</a></div> </td> </tr> </table> <br> HTML_OUT print qq|<input type="hidden" name="special" value="1">| if ($qs eq 'rr'); print <<END_HTML; <input type="hidden" name="email" value="$participants_email"> </form> </body> </html> END_HTML } sub check_url { # Localize the check_referer flag which determines if user is valid. local($check_referer) = 0; # If a referring URL was specified, for each valid referer, make sure # that a valid referring URL was passed to FormMail. if ($ENV{'HTTP_REFERER'}) { foreach $referer (@referers) { if ($ENV{'HTTP_REFERER'} =~ m|https?://([^/]*)$referer|i) { $check_referer = 1; last; } } } else { $check_referer = 1; } # If the HTTP_REFERER was invalid, send back an error. if ($check_referer != 1) { &error('bad_referer') } } sub check_required { # Localize the variables used in this subroutine. local($require, @error); if (!$Config{'recipient'}) { if (!defined(%Form)) { &error('bad_referer') } else { &error('no_recipient') } } # For each require field defined in the form: foreach $require (@Required) { # If the required field is the email field, the syntax of the email # address if checked to make sure it passes a valid syntax. if ($require eq 'email' && !&check_email($Config{$require})) { push(@error,$require); } # Otherwise, if the required field is a configuration field and it # has no value or has been filled in with a space, send an error. elsif (defined($Config{$require})) { if (!$Config{$require}) { push(@error,$require); } } # If it is a regular form field which has not been filled in or # filled in with a space, flag it as an error field. elsif (!$Form{$require}) { push(@error,$require); } } # If any error fields have been found, send error message to the user. if (@error) { &error('missing_fields', @error) } } sub return_html { print header; # Print HTTP header and opening HTML tags. print <<HTML; <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd"> <html> <head> <title>Weather on Idaho's Lake Pend Oreille</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <script language="JavaScript" type="text/javascript"> <!-- if ((navigator.appVersion.indexOf("Mac") != -1)) { document.write('<link rel="stylesheet" href="../css/cc_mac.css" type="text/css">'); } else { document.write('<link rel="stylesheet" href="../css/cc_win.css" type="text/css">'); } // --> </script> <style type="text/css" media="screen"> \@import "/css/list.css"; </style> </head> <body bgcolor="#ffffff"> <a name="top"></a> <table width="640" border="0" cellspacing="0" cellpadding="0"> <tr valign="top" align="center"> <td bgcolor="#99CCFF" width="10"> </td> <td bgcolor="#99CCFF" width="150"><a href="/"><img src="../images/kayak_anm.gif" alt=" Full Spectrum Tours home of Kayaking.net " width="140" height="124" vspace="10" border="0"></a> </td> <td width="10"><!-- margin --> </td> <td width="480"><br><div align="center"><img src="../images/fsglasslogo.gif" width="280" height="134" border="0" alt=" Full Spectrum Tours, Sandpoint Idaho, home of lake Pend Oreille "></div></td></tr> <tr valign="top"> <td bgcolor="#99CCFF" width="10"> </td> <td bgcolor="#99CCFF" width="150"> <!-- Start Left Nav Bar --> <p class="navbar"><a href="/pages/location.html">Location</a></p> <p class="navbar"><a href="/pages/tours.html">Tours</a></p> <p class="navbar"><a href="/pages/rentals.html">Rentals</a></p> <p class="navbar"><a href="/pages/classes.html">Classes</a></p> <p class="navbar"><a href="/pages/just_4_kids.html">Just For Kids</a></p> <p class="navbar"><a href="/pages/special_sales.html">Sales & Specials</a></p> <p class="navbar"><a href="/pages/product_list.html">Manufacture's Links</a></p> <p class="navbar"><a href="/pages/ourstaff.html">Meet Our Staff</a></p> <!-- End of Left Nav Bar --> </td> <td width="10"> </td> <td> <br clear="all"> <!-- Start Content --> <h2>Thanks, Enjoy the rest of the site.</h2> <!-- End Content --> <div align="center"> Full Spectrum Tours<br> PO Box 2003<br> Sandpoint, Idaho 83864<br> Tel: 208-263-5975 <br> Email: <a href="mailto:webguide\@kayaking.net">webguide\@kayaking.net</a></div> </td> </tr> <tr valign="top" align="center"> <td bgcolor="#99CCFF" width="10"> </td> <td bgcolor="#99CCFF" align="center"><a href="http://www.weather.com/weather/local/83864" target="_blank"><img src="../images/weather_ch.gif" width="74" height="62" alt=" Visit the Weather Channel "></a> <br> <p class="header">Visit the Weather Channel for current Sandpoint weather</p></td> <td width="10"> </td> </tr> <tr valign="top"> <td bgcolor="#99CCFF" width="10"><!-- left margin --> </td> <td bgcolor="#99CCFF" align="center" valign="bottom"> <br> <form> <form><p><input type="button" value="Top of current page" onClick="location.hash='top'"></p></form></form> </td> <td width="10"> </td> </tr> </table> <br> </body> </html> HTML } sub check_email { # Initialize local email variable with input to subroutine. $email = $_[0]; # If the e-mail address contains: if ($email =~ /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/ || # the e-mail address contains an invalid syntax. Or, if the # syntax does not match the following regular expression pattern # it fails basic syntax verification. $email !~ /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/) { # Basic syntax requires: one or more characters before the @ sign, # followed by an optional '[', then any number of letters, numbers, # dashes or periods (valid domain/IP characters) ending in a period # and then 2 or 3 letters (for domain suffixes) or 1 to 3 numbers # (for IP addresses). An ending bracket is also allowed as it is # valid syntax to have an email address like: user@[255.255.255.0] # Return a false value, since the e-mail address did not pass valid # syntax. return 0; } else { # Return a true value, e-mail verification passed. return 1; } } sub error { # Localize variables and assign subroutine input. local($error,@error_fields) = @_; local($host,$missing_field,$missing_field_list); if ($error eq 'bad_referer') { if ($ENV{'HTTP_REFERER'} =~ m|^https?://([\w\.]+)|i) { $host = $1; print <<END_HTML; Content-type: text/html <html> <head> <title>Bad Referrer - Access Denied</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <style type="text/css" media="screen"> \@import "/css/list.css"; </style> </head> <body background="../images/dancers.gif" link="#CC6600" alink="#CC0000" vlink="#CC6600"> <center> <table border=0 width=600 bgcolor=#9C9C9C> <tr><th><font size="+2">Bad Referrer - Access Denied</font></th></tr> </table> <table border=0 width=520 bgcolor=#CFCFCF> <tr><td><h2>Access Denied</h2></td></tr> </table> </center> </body> </html> END_HTML } else { print <<END_HTML; Content-type: text/html <html> <head> <title></title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <style type="text/css" media="screen"> \@import "/css/list.css"; </style> </head> <body link="#CC6600" alink="#CC0000" vlink="#CC6600"> <center> <table border=0 width=600 bgcolor=#9C9C9C> <tr><th><font size="+2">FormMail</font></th></tr> </table> </center> </body> </html> END_HTML } } elsif ($error eq 'request_method') { print <<END_HTML; Content-type: text/html <html> <head> <title>Error: Request Method</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <style type="text/css" media="screen"> \@import "/css/list.css"; </style> </head> <body" link="#CC6600" alink="#CC0000" vlink="#CC6600"> <center> <table border=0 width=600 bgcolor=#9C9C9C> <tr><th><font size="+2">Error: Request Method</font></th></tr> </table> <table border="0" width="600" bgcolor="#CFCFCF"> <tr><td>The Request Method of the Form you submitted did not match either <tt>GET</tt> or <tt>POST</tt>. Please check the form and make sure the <tt>method=</tt> statement is in upper case and matches <tt>GET</tt> or <tt>POST</tt>.<p> </td></tr> </table> </center> </body> </html> END_HTML } elsif ($error eq 'no_recipient') { print <<END_HTML; Content-type: text/html <html> <head> <title>Error: No Recipient</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <style type="text/css" media="screen"> \@import "/css/list.css"; </style> </head> <body link="#CC6600" alink="#CC0000" vlink="#CC6600"> <center> <table border=0 width=600 bgcolor=#9C9C9C> <tr><th><font size="+2">Error: No Recipient</font></th></tr> </table> <table border="0" width="600" bgcolor="#CFCFCF"> <tr><td>No Recipient was specified in the data sent to FormMail. Please make sure you have filled in the 'recipient' form field with an e-mail address. More information on filling in recipient form fields can be found in the README file.<hr size=1> </td></tr> </table> </center> </body> </html> END_HTML } elsif ($error eq 'missing_fields') { if ($Config{'missing_fields_redirect'}) { print "Location: $Config{'missing_fields_redirect'}\n\n"; } else { foreach $missing_field (@error_fields) { $missing_field_list .= " <li>$missing_field\n"; } print header; print <<END_HTML; <html> <head> <title>Error: Blank Fields</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <style type="text/css" media="screen"> \@import "/css/list.css"; </style> </head> <center> <table border="0" width="600" bgcolor="#9C9C9C"> <tr><th><font size="+2">Error: Blank Fields</font></th></tr> </table> <table border="0" width="600" bgcolor="#CFCFCF"> <tr><td>The following fields were left blank in your submission form:<p> <ul> <li>$missing_field_list</li> </ul><br> These fields must be filled in before you can successfully submit the form.<p> Please use your browser's back button to return to the form and try again. <hr size="1"> </td></tr> </table> </center> </body> </html> END_HTML } } exit; } -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]