【问题标题】:Getting Empty Emails From PHP & HTML Contact Form从 PHP 和 HTML 联系表中获取空电子邮件
【发布时间】:2018-04-17 06:21:48
【问题描述】:

我是一名网页设计和开发的学生,正在尝试制作一个网站。我使用 php 和 html 为网站创建了联系表单。我是php新手,所以对它一无所知。我从网站复制了一个代码,通过该代码我收到了一封电子邮件,但为空 [没有我在网站联系表中输入的信息]。 这是我的 HTML 代码 [文件名:contact.html]:-

 <div class="login-w3l">    
            <div class="top-img-agileits-w3layouts">
                <h2 class="sub-head-w3-agileits">Contact Us</h2>
                <p>Fillout the form below !</p>
                <div class="login-form">    
                <form action="handler.php" method="post" enctype="multipart/form-data">
                    <input type="text" name="Name" placeholder="First Name" required="" />
                    <input type="text" name="Name" placeholder="Last Name" required="" />
                    <input type="email" name="Email" placeholder="Email" required="" />
                    <input type="text" name="Subject" placeholder="Subject" required="" />
                    <textarea name="Message" placeholder="Message" required=""></textarea>
                    <input type="submit" value="Send">
                </form> 
            </div>
            </div>          


                </div> 
-----End of HTML-----

这是我的 PHP 代码 [文件名:handler.php]:-

<?php

$first_name = $_POST ['first name'];
$last_name = $_POST ['last name'];
$visitor_email = $_POST ['email'];
$message = $_POST ['message'];

$email_from = 'info@wms-wms-wms.tk';

$email_subject = "WMS Contact form";

$email_body = "User First Name :  $first_name \n".
                                        "User Last Name :  $last_name \n".
                                                "User Email :  $visitor_email \n ".
                                                        "User Message : $message \n";

 $to = "wms-wms-wms@outlook.sa";   

 $headers = "From: $email_from \r\n";

 $headers .= "Reply To: $visitor_email \r\n";


 mail($to, $email_subject, $email_body, $headers);

 header("Location: contact.html");

?>

【问题讨论】:

    标签: php html email


    【解决方案1】:

    首先,您需要适当地格式化表单元素。添加唯一的nameid 属性与表单提交相关。因此,我更新了您的 name 和 id 元素以匹配您的 php 脚本正在寻找的内容。

    <div class="login-w3l">
        <div class="top-img-agileits-w3layouts">
            <h2 class="sub-head-w3-agileits">Contact Us</h2>
            <p>Fillout the form below !</p>
            <div class="login-form">
                <form action="handler.php" method="post" enctype="multipart/form-data">
                    <input type="text" name="first_name" id="first_name" placeholder="First Name" required=""/>
                    <input type="text" name="last_name" id="last_name" placeholder="Last Name" required=""/>
                    <input type="email" name="email" id="email" placeholder="Email" required=""/>
                    <input type="text" name="subject" id="subject" placeholder="Subject" required=""/>
                    <textarea name="message" id="message" placeholder="Message" required=""></textarea>
                    <input type="submit" value="Send">
                </form>
            </div>
        </div>
    </div> 
    

    之后,您的变量顶部现在应该填充您之前填写的表单元素。

    这是你编辑的 PHP 实际工作:

    <?php
    
    $first_name = $_POST['first_name'];
    $last_name = $_POST['last_name'];
    $visitor_email = $_POST['email'];
    $message = $_POST['message'];
    $subject = $_POST['subject'];
    
    ....
    
    ?>
    

    【讨论】:

    • 回复:name@hotmail.com 用户名:用户姓氏:用户电子邮件:name@hotmail.com 用户消息:我正在测试我的网站现在我收到回复:用户电子邮件和消息但没有得到主题、名字和姓氏,为什么?
    • 很好,如果它适合您,请接受作为答案。 :)
    【解决方案2】:

    确保nameid 属性全部小写且没有空格。

    也不要在$_POST[] 之间添加空格。

    尝试使用:

    <div class="login-w3l">
        <div class="top-img-agileits-w3layouts">
            <h2 class="sub-head-w3-agileits">Contact Us</h2>
            <p>Fillout the form below !</p>
            <div class="login-form">
                <form action="handler.php" method="post" enctype="multipart/form-data">
                    <input type="text" name="first_name" id="first_name" placeholder="First Name" required=""/>
                    <input type="text" name="last_name" id="last_name" placeholder="Last Name" required=""/>
                    <input type="email" name="email" id="email" placeholder="Email" required=""/>
                    <input type="text" name="subject" id="subject" placeholder="Subject" required=""/>
                    <textarea name="message" id="message" placeholder="Message" required=""></textarea>
                    <input type="submit" value="Send">
                </form>
            </div>
        </div>
    </div>
    

    PHP:

    <?php
    
    $first_name = $_POST['first name'];
    $last_name = $_POST['last name'];
    $visitor_email = $_POST['email'];
    $message = $_POST['message'];
    
    $email_from = 'info@wms-wms-wms.tk';
    
    $email_subject = "WMS Contact form";
    
    $email_body = "User First Name :  $first_name \n".
                  "User Last Name :  $last_name \n".
                  "User Email :  $visitor_email \n ".
                  "User Message : $message \n";
    
     $to = "wms-wms-wms@outlook.sa";   
    
     $headers = "From: $email_from \r\n";
    
     $headers .= "Reply To: $visitor_email \r\n";
    
    
     mail($to, $email_subject, $email_body, $headers);
    
     header("Location: contact.html");
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-16
      • 1970-01-01
      • 1970-01-01
      • 2014-06-09
      • 1970-01-01
      • 1970-01-01
      • 2012-02-25
      • 1970-01-01
      相关资源
      最近更新 更多