PHP表单发送但“没有发件人”

时间:2015-01-01 23:41:31

标签: php forms email

我能够收到包含所有信息的电子邮件,除了表格中输入的电子邮件地址,当我收到电子邮件时,我得到了#34; No Sender"而不是该人的姓名或电子邮件。

这是我的HTML:

        <!-- Contact Form -->
        <div class="col-xs-12 col-sm-8 col-md-8">
            <div id="contant-form-bx" class="contant-form-bx">
                <div class="contact-loader"></div>
                <form action="mail.php" id="contact-form" class="contact-form" name="cform" method="post">
                    <div class="row">
                        <div class="col-md-6">  
                            <label for="name" id="name_label">Name</label>
                            <span class="name-missing">Please enter your name!</span>  
                            <input id="name" type="text" value="" name="name" size="30"> 
                        </div> 
                        <div class="col-md-6 columns"> 
                            <label for="e-mail" id="email_label">Email</label>
                            <span class="email-missing">Please enter a valid e-mail!</span> 
                            <input id="e-mail" type="text" value="" name="email" size="30">
                        </div>
                        <div class="col-md-12"> 
                            <label for="message" id="phone_label">Message</label>
                            <span class="message-missing">Say something!</span>
                            <textarea id="message" name="message" rows="7" cols="40"></textarea>
                        </div>
                        <div class="col-md-12 text-center"> 
                            <input type="submit" name="submit" class="button" id="submit_btn" value="Send Message">  
                        </div>
                    </div>
                </form>
            </div>
        </div>

这是我的PHP:

    <?php
// declare our variables
$name = $_POST['name'];
$email = $_POST['e-mail'];
$message = nl2br($_POST['message']);

// set a title for the message
$subject = "From $name via WEB";
$body = "From $name, \n\n$message";
$headers = 'From: '.$email.'' . "\r\n" .
    'Reply-To: '.$email.'' . "\r\n" .
    'Content-type: text/html; charset=utf-8' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

// put your email address here
mail("info@wziel.com", $subject, $body, $headers);
?>

<!--Display a Thank you message in the callback -->
<div class="mail_response">
    <h4>Thank you <?php echo $name ?>!</h4>
    <p>I'll be in touch real soon!</p>
</div> 

2 个答案:

答案 0 :(得分:3)

根据你的表格:

$email = $_POST['e-mail'];

应该是这样的:

$email = $_POST['email'];

e-mail而不是id name

php查看name而非id

答案 1 :(得分:2)

您正在使用$_POST['e-mail']e-mail<input>代码的ID。您应该使用$_POST['email'],因为name="email"