Can somebody please help me!!

I am looking for Monk guidance for the first time so apologies in advance if I haven't followed protocall with the following submission.

I'm having an addressing issue with a PERL script i'm trying to use on my site. I'm new to learning PERL, so don't have the expertise to write a script that directs the content of a form to my email address and sends an automated reply to the submitter, with a thank you page. So I found a script online and am trying to get it to work on my server. I know I have included alot here! But i do so in the hope that a thorough look can be given, as I am at a real loss as to what I may have configured wrong. Many thanks in advance for any help.

Stuart

Visit http://www.truevitality.co.uk to view the contact page and the error messages that are coming up.

The set up on the server is as follows:

folder / >>>>>folder mail
>>>>>folder public_ftp
>>>>>folder public_html
>>>>>>>>>>>>>>>>>folder _private
>>>>>>>>>>>>>>>>>folder _vti_bin
>>>>>>>>>>>>>>>>>folder _vti_log
>>>>>>>>>>>>>>>>>folder _vti_cnf
>>>>>>>>>>>>>>>>>folder _vti_pvt
>>>>>>>>>>>>>>>>>folder _vti_txt
>>>>>>>>>>>>>>>>>folder cgi-bin
>>>>>>>>>>>>>>>>>>>>>>>>>>file AlphaMail.pl
>>>>>>>>>>>>>>>>>>>>>>>>>>file AlphaMail.txt
>>>>>>>>>>>>>>>>>folder images
>>>>>file a_fail.htm
>>>>>file a_thanks.htm
>>>>>file contact.htm
The PERL script that I am using is as follows: (My notes in Bold)
#!/usr/local/bin/perl <strong>(this address has been confirmed as accu +rate with my server provider)</strong> ############################################################# # Instructions: # # - Use WordPad.exe or any plain text editor to edit # - Set your path to Perl as needed (first line at top) # - Set ALL variables appropriately (below, see notes) # - Take special care with the path to your sendmail (below) # - Send the script to the server in ascii (I assume that using notepa +d, saving the file as .pl and ftp the file up to the server, IS sendi +ng the script in ascii??) # - Set script permissions - check your doc or ask admin (apparently t +here aren't any) # - See a_faq.html for HTML set-ups in alphamail.zip file # - Required html pages are also provided in alphamail.zip # ############################################################# ##### SETTABLE VARIABLES #################################### # URL to go to if there is a problem with form input $ErrorPage = "http://www.truevitality.co.uk/public_html/a_fail.htm"; ( +this i believe to be the address to the a_fail.htm page that i did) # URL to go to when form has been successfully submitted $ThankPage = "http://www.truevitality.co.uk/public_html/a_thanks.htm"; + (again I believe this address to be correct. I have tried it without + the /public_html as well) # URL to go to if a 'foreign' referer calls the script $EvilReferer = "http://www.dvdj.co.uk"; (I just used another web addre +ss that i have for this) # E-mail address to send intake form to (your address) # If not using PERL 5, escape the @ thus: \@ instead of @ $YourEmail = 'sackland@blueyonder.co.uk'; (This is my personal email t +hat i was using to test. The actual email would be info@truevitality. +co.uk But didn't think this would effect anything) # Script works only on your server(s) - ('URL1','URL2') @referers = ('www.truevitality.co.uk','truevitality.co.uk'); # Location of mail program - check your doc or ask admin $MailProgram = '/usr/sbin/sendmail'; (again this address has been conf +irmed by my host support team) # Subject of the e-mail autoreply to the submitter $Subject = "Thank you for Your Enquiry!"; # Header line in the auto-reply message $Header = "True Vitality"; # Brief tail message for body of e-mail autoreply $TailMessage = "If your message requires a reply, then please be assur +ed that we'll get back to you as soon as possible."; # Your signature lines the end of the autoreply e-mail $Signature1 = "Laura Wilenius"; $Signature2 = "www.truevitality.co.uk"; ##### END OF SETTABLE VARIABLES ############################ ##### MAIN PROGRAM ######################################### # ___ Do not edit below this line __________________________ &CheckReferingURL; &ReadParse; $Name = $in{'Name'}; $Email = $in{'Email'}; $Message = $in{'Message'}; &CheckEmailAddressFormat; &CheckFields; &GetDate; &SendSubmission; &SendAutoReply; print "Location: $ThankPage\n\n"; exit; # _________________________________________________________ sub SendSubmission { open (MAIL,"|$MailProgram -t"); print MAIL "To: $YourEmail\n"; print MAIL "From: $Email\n"; print MAIL "Subject: $Subject\n"; print MAIL "$Date\n\n"; print MAIL "E-Mail Message\n\n"; print MAIL "From: $Name\n"; print MAIL "Email: $Email\n\n"; print MAIL "Message:\n\n"; print MAIL "$Message\n\n"; close (MAIL); } # _________________________________________________________ sub SendAutoReply { open (MAIL,"|$MailProgram -t"); print MAIL "To: $Email\n"; print MAIL "From: $YourEmail\n"; print MAIL "Subject: $Subject\n"; print MAIL "$Header\n"; print MAIL "$Date\n\n"; print MAIL "$Subject\n\n"; print MAIL "You sent the following:\n\n"; print MAIL "==============================\n\n"; print MAIL "Name: $Name\n"; print MAIL "Email: $Email\n\n"; print MAIL "Message:\n\n"; print MAIL "$Message\n\n"; print MAIL "==============================\n\n"; print MAIL "$TailMessage\n\n"; print MAIL "Best regards,\n\n\n"; print MAIL "$Signature1\n"; print MAIL "$Signature2\n\n"; close (MAIL); } # _________________________________________________________ sub GetDate { @days = ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday',' +Saturday'); @months = ('01','02','03','04','05','06','07','08','09','10','11','12' +); ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time +); $year = $year+1900; $Date = "$days[$wday] $months[$mon]/$mday/$year"; } # _________________________________________________________ sub ReadParse { local (*in) = @_ if @_; local ($i, $key, $val); if ( $ENV{'REQUEST_METHOD'} eq "GET" ) {$in = $ENV{'QUERY_STRING'};} elsif ($ENV{'REQUEST_METHOD'} eq "POST") {read(STDIN,$in,$ENV{'CONTENT_LENGTH'});} else { $in = ( grep( !/^-/, @ARGV )) [0]; $in =~ s/\\&/&/g; } @in = split(/&/,$in); foreach $i (0 .. $#in) { $in[$i] =~ s/\+/ /g; ($key, $val) = split(/=/,$in[$i],2); $key =~ s/%(..)/pack("c",hex($1))/ge; $val =~ s/%(..)/pack("c",hex($1))/ge; $in{$key} .= "\0" if (defined($in{$key})); $in{$key} .= $val; } return length($in); } # _________________________________________________________ sub CheckEmailAddressFormat { if (index($Email, "@") < 1) {&DoEmailError;} if (index($Email, ".") < 1) {&DoEmailError;} if (index($Email, " ") > -1) {&DoEmailError;} } sub CheckFields { if (!$Name || $Name eq ' ') {&DoEmailError;} if (!$Email || $Email eq ' ') {&DoEmailError;} if (!$Message || $Message eq ' ') {&DoEmailError;} } sub DoEmailError { print "Location: $ErrorPage\n\n"; exit; } # _________________________________________________________ sub CheckReferingURL { if ($ENV{'HTTP_REFERER'}) { foreach $referer (@referers) { if ($ENV{'HTTP_REFERER'} =~ /$referer/i) { $check_referer = '1'; last; }}} else {$check_referer = '1';} if ($check_referer != 1) { print "Location: $EvilReferer\n\n"; exit; }} # _________________________________________________________ exit; ##### End of Script ########################################
The contact page contains the following form code. Please note i'am aware that i have additional fields that are not included in the PERL script which i intend to address once it's working. I hope I'm right in thinking that this wouldn't stop this script from working. But i have renamed the appropriate fields to match the scalars listed in the script.
<form action="/cgi-bin/AlphaMail.pl" method="POST"> <table width="100%" border="0" cellspacing="0" cellpadding="2"> <tr> <td>NAME</td> <td><input type="text" name="Name" class="formAreas"></td> </tr> <tr> <td>PHONE NUMBER</td> <td><input type="text" name="telephone" class="formAreas"></td> </tr> <tr> <td>EMAIL</td> <td><input type="text" name="Email" class="formAreas"></td> </tr> <tr> <td>COMMENT/ENQUIRY</td> <td><textarea name="Message" cols="15" rows="4" class="formAreas"></te +xtarea></td> </tr> <tr> <td>PLACE OF EXERCISE</td> <td><input type="text" name="plcOfExercise" class="formAreas"></td> </tr> <tr> <td>HOW DID YOU HEAR ABOUT TRUE VITALITY</td> <td><input type="text" name="howDidUHear" class="formAreas"></td> </tr> <tr> <td><br> <input name="resetVitality" type="reset" class="formAreas"></td> <td><br> <input type="submit" class="formAreas"></td> </tr> </table> </form>

In reply to Setup problem by dvdj

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.