开发者

Form contents not showing in email

This is a followup to a question I posted yesterday. I thought everything was working fine, but today, I am not getting any results in the email from the drop down field.

Here is the form code in question:

<form method="post" action="contact.php" name="contactform" id="contactform">

        <fieldset>

        <legend>Please fill in the following form to contact us</legend>

        <label for="name"><span class="required">*</span> Your Name</label>
        <input name="name" type="text" id="name" size="30" value="" /> 

        <br />

        <label for="company">Company</label>
        <input name="company" type="text" id="company" size="30" value="" /> 

        <br />

        <label for="email"><span class="required">*</span> Email</label>
        <input name="email" type="text" id="email" size="30" value="" />

        <br />
        <label for="phone"><span class="required">*</span> Phone</label>
        <input name="phone" type="text" id="phone" size="30" value="" />

        <br />
        <label for="purpose"><span class="required">*</span> Purpose</label>
        <select name="purpose" id="purpose"  style="width: 300px; height:35px;">
            <option value="none selected" selected="selected">-- Select One --</option>
            <option value="I am interested in your services">I am interested in your services!</option>
            <option value="I am interested in a partnership">I am interested in a partnership!</option>
    <option value="I am interested in a job">I am interested in a job!</option>
        </select>

        <br />
        <label for=comments><span class="required">*</span> Comments</label>
        <textarea name="comments" cols="40" rows="3"  id="comments" style="width: 350px;"></textarea>

        <p><span class="required">*</span> Please help us control spam.</p>

        <label for=verify accesskey=V>&nbsp;&nbsp;&nbsp;3 + 1 =</label>
        <input name="verify" type="text" id="verify" size="4" value="" style="width: 30px;" /><br /><br />

        <input type="submit" class="submit" id="submit" value="Submit" />

        </fieldset>

        </form>

It is then processed in PHP and should output the selected option to an email, however the Reason for Contact line always comes through with nothing in it.

Here is the PHP code:

<?php

if(!$_POST) exit;

    $name           = $_POST['name'];
    $company        = $_POST['company'];
    $email          = $_POST['email'];
    $phone          = $_POST['phone'];
    $purpose        = $_POST['purpose'];
    $comments   = $_POST['comments'];
    $verify         = $_POST['verify'];

    if(trim($name) == '') {
        echo '<div class="error_message">Attention! You must enter your name.</div>';
        exit(); 
    } else if(trim($email) == '') {
        echo '<div class="error_message">Attention! Please enter a valid email address.</div>';
        exit();
    } else if(trim($phone) == '') {
        echo '<div class="error_message">Attention! Please enter a valid phone number.</div>';
        exit();
    } else if(!isEmail($email)) {
        echo '<div class="error_message">Attention! You have enter an invalid e-mail address, try again.</div>';
        exit();
    }

    if(trim($comments) == '') {
        echo '<div class="error_message">Attention! Please enter your message.</div>';
        exit();
    } else if(trim($verify) == '') {
        echo '<div class="error_message">Attention! Please enter the verification number.</div>';
        exit();
    } else if(trim($verify) != '4') {
        echo '<div class="error_message">Attention! The verification number you entered is incorrect.</div>';
        exit();  
    }

    if($error == '') {

        if(get_magic_quotes_gpc()) {
            $comments = stripslashes($comments);
        }


     // Configuration option.
     // Enter the email address that you want to emails to 开发者_运维技巧be sent to.
     // Example $address = "joe.doe@yourdomain.com";

     $address = "myname@email.com";




     // Configuration option.
     // i.e. The standard subject will appear as, "You've been contacted by John Doe."

     // Example, $e_subject = '$name . ' has contacted you via Your Website.';

     $e_subject = 'You\'ve been contacted by ' . $name . '.';


     // Configuration option.
     // You can change this if you feel that you need to.
     // Developers, you may wish to add more fields to the form, in which case you must be sure to add them here.

     $e_body = "You have been contacted by $name.\r\n\n";
     $e_company = "Company: $company\r\n\n";
     $e_content = "Comments: \"$comments\"\r\n\n";
     $e_purpose = "Reason for contact: $purpose\r\n\n";

     $e_reply = "You can contact $name via email, $email or via phone $phone";

     $msg = $e_body . $e_content . $e_company . $e_purpose . $e_reply;

     if(mail($address, $e_subject, $msg, "From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n")) {


     // Email has sent successfully, echo a success page.

     echo "<fieldset>";         
     echo "<div id='success_page'>";
     echo "<h1>Email Sent Successfully.</h1>";
     echo "<p>Thank you <strong>$name</strong>, your message has been submitted to us.</p>";
     echo "</div>";
     echo "</fieldset>";

     } else {

     echo 'ERROR!';

     }

}

function isEmail($email) { // Email address verification, do not edit.

return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i",$email));

}
?>

Any assistance would be greatly appreciated. Thanks!


It really looks like it should work, so I'd verify the dumbly obvious stuff: is your <select> tag contained within the <form> tag? Is 'purpose' mis-typed somewhere (it all looks good here, from what I can see)?

What happens if you do print_r($_POST)? What happens if you do var_dump($purpose) after it is initialized?


Did you check if the server is able to send emails?

Check if sendmail actually works on your server before trying to debug your code (that seems to be good).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜