PHP表单没有提交电子邮件条目.我错过了什么

bab*_*usi 0 html php

更新:我有一个简单的PHP表单,应该将数据提交到电子邮件地址但不发送它.它只是发送字段名称.

这是代码:

<?php 
$ToEmail = 'email@yahoo.com'; 
$EmailSubject = 'Site contact form'; 
$mailheader = "From: ".$_POST["email"]."\r\n"; 
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; 
$mailheader .= "Content-type: text/plain; charset=iso-8859-1\r\n"; 
$MESSAGE_BODY = "Name: ".$_POST["name"]."\r\n"; 
$MESSAGE_BODY .= "Surname: ".$_POST["surname"]."\r\n"; 
$MESSAGE_BODY .= "Designation: ".$_POST["designation"]."\r\n";
$MESSAGE_BODY .= "Phone: ".nl2br($_POST["phone"])."\r\n"; 
$MESSAGE_BODY .= "Email: ".nl2br($_POST["email"])."\r\n";
$MESSAGE_BODY .= "Opt in: ".nl2br($_POST["send"])."\r\n"; 
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure"); 
?>


<form class="form-signin" name="index" action="index.php" method="post">

<img src="img/coffee.png" width="235" height="227">
<h2 class="form-signin-heading">Enter your information</h2>
    <input name="name" type="text" class="input-block-level" id="name"  placeholder="Name">
    <input type="text" class="input-block-level" name="surname"  id="surname" placeholder="Surname">
    <input type="text" class="input-block-level" name="designation" id="designation" placeholder="Designation">
    <input type="text" class="input-block-level" name="phone" id="phone" placeholder="Cell Number">
    <input type="text" class="input-block-level" name="email" id="email" placeholder="Email">
    <label class="checkbox">
    <input type="checkbox" value="Send-me-helpful-information" name="send" checked>   <p>Send me helpful information</p>
   <input name="submit" type="submit" value="submit" class="btn btn-large btn-primary" id="go" rel="leanModal" href="#thankyou">


    <p>Terms & Conditions Apply. 
<a href="terms.html">Click HERE</a></p>
  </form>
Run Code Online (Sandbox Code Playgroud)

请帮忙

评论:它现在正在发送,但在页面加载时提交了一封空白电子邮件.有谁知道解决这个问题?

Fab*_*bor 5

将提交按钮更改为:

<input type="submit" value="Submit" />
Run Code Online (Sandbox Code Playgroud)

你的PHP看起来应该更像

if(!empty($_POST)) { // This is to say if the form is submitted.
    // All your PHP post stuff here. The email sending stuff.
    $errors = array();

    // Do this for all your required fields.
    if(isset($_POST['email']) && $_POST['email'] != '') { // If there's a variable set and it isn't empty.
         $mailheader = "From: " . $_POST['email'] . "\r\n";
    } else {
         $errors[] = "No email submitted";
    }

    print_r($_POST); // This is for debugging. Remove it when satisfied.
    echo $MESSAGE_BODY; // Also for debugging. Ensure this is fine.

    if(empty($errors)) {
        if(mail()) { // Your mail function 
            // Successful mail send, either redirect or do whatever your do for successful send
        } else {
            // Mail failure, inform user the sending failed. Handle it as you wish. Errors will be sent out.
        }
    } else {
        print_r($errors); // See what's going error wise.
    }
}
Run Code Online (Sandbox Code Playgroud)