SitePoint Sponsor

User Tag List

Results 1 to 2 of 2
  1. #1
    SitePoint Member
    Join Date
    Apr 2001
    Location
    Cheshire - UK
    Posts
    2
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Why wont my form work?

    Hi all,

    You might be able to help. I am trying to get a form to work on my http://www.clomac.co.uk site and i think I am nearly there but it still isnt bloody working. Heres what Ive done so far.



    Created a cgi-bin folder in my clomac web directory

    within that folder Ive added a file called AlphaMail.pl (which is were the script is located)

    The script is:

    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    # !/usr/bin/perl--
    # location of Perl (above) - check your doc or ask admin

    #############################################################
    #
    # Script Source: CodeBrain.com
    # Source URL: http://www.codebrain.com/perl
    # Script Title: Alpha E-Mailer w/ Autoresponder
    # Script Name: AlphaMail.pl
    # Copyright: 1998,1999,2000 by OEC Corp & CodeBrain.com
    # Version: 09.01.1999.C (latest)
    # Status: Fully tested, release version 7, Y2K ready
    #
    # This script may not be redistributed without this header
    #
    # There are no restrictions on this script - anyone may use
    # it, though we appreciate credit where due. Responsibility
    # for use of the script is entirely with the user. Please
    # note that CodeBrain.com does not support Perl scripts!
    #
    # 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
    # - Set script permissions - check your doc or ask admin
    # - 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.clomac.co.uk/cff_contactformerror.htm";

    # URL to go to when form has been successfully submitted
    $ThankPage = "http://www.clomac.co.uk/cff_contactformthanks.htm";

    # URL to go to if a 'foreign' referer calls the script
    $EvilReferer = "http://www.clomac.co.uk";

    # E-mail address to send intake form to (your address)
    # If not using PERL 5, escape the @ thus: \@ instead of @
    $YourEmail = 'mikesefton@supanet.com';

    # Script works only on your server(s) - ('URL1','URL2')
    @referers = ('www.clomac.co.uk','clomacfoamandfibre.co.uk');

    # Location of mail program - check your doc or ask admin
    $MailProgram = '/usr/lib/sendmail';

    # Subject of the e-mail autoreply to the submitter
    $Subject = "Thanks for Your Message!";

    # Header line in the auto-reply message
    $Header = "Clomac Foam and Fibre";

    # Brief tail message for body of e-mail autoreply
    $TailMessage = "If your message requires a reply, we'll get back to you soon.";

    # Your signature lines the end of the autoreply e-mail
    $Signature1 = "Mr John Close";
    $Signature2 = "www.clomac.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 ########################################
    </head>

    <body bgcolor="#FFFFFF">

    </body>
    </html>


    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    This is totally perplexed me and I am going nowwhere fast. Please someone help.

    Thanks

  2. #2
    Irritability Defined
    Join Date
    Jul 2000
    Location
    80,000 feet below the surface
    Posts
    1,442
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Cross-posted. Next time, please post only one thread in one forum. Thank you.

    Users : please direct your answers to http://www.sitepointforums.com/showt...threadid=24199
    My 2 Cents (or is that 2.2 Cents including GST?)


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •