Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的PHP电子邮件表单发送一封空白电子邮件_Php_Html_Email - Fatal编程技术网

为什么我的PHP电子邮件表单发送一封空白电子邮件

为什么我的PHP电子邮件表单发送一封空白电子邮件,php,html,email,Php,Html,Email,让我先解释一下我的问题 我有一份自由职业,为一家商业公司设计和开发网站。我编写了一个电子邮件表单并将其附加到一个PHP发送表单中,它收集填写表单的人的姓名、电话、电子邮件、主题和消息,并将其发送给企业所有者 最近,所有者一直抱怨收到空白电子邮件,认为他们错过了业务。我回到PHP代码中,添加了一个验证系统,甚至添加了一个重定向,当它正确提交时,它将重定向到一个页面,该页面有两个选项:“抱歉,出现了问题”或“感谢您发送电子邮件” 我还进入了我的HTML,并修正了这一点,同时添加了“必填字段”,因此在

让我先解释一下我的问题

我有一份自由职业,为一家商业公司设计和开发网站。我编写了一个电子邮件表单并将其附加到一个PHP发送表单中,它收集填写表单的人的姓名、电话、电子邮件、主题和消息,并将其发送给企业所有者

最近,所有者一直抱怨收到空白电子邮件,认为他们错过了业务。我回到PHP代码中,添加了一个验证系统,甚至添加了一个重定向,当它正确提交时,它将重定向到一个页面,该页面有两个选项:“抱歉,出现了问题”或“感谢您发送电子邮件”

我还进入了我的HTML,并修正了这一点,同时添加了“必填字段”,因此在没有填写内容的情况下,绝对无法发送电子邮件

有人能不能解释一下,因为店主还在抱怨收到空白邮件

这是HTML联系人表单文件

    <form method="post" action="acknowledge.php"  role="form" class="php-email-form">
      <div class="form-row section-bg">
        <div class="col-md-6 form-group">
          <input type="text" name="name" class="form-control" id="name" placeholder="Your Full Name" data-rule="minlen:4" data-msg="Please enter a valid Full Name" required/>
          <div class="validate"></div>
        </div>
        <div class="col-md-6 form-group">
          <input type="text" class="form-control" name="cname" id="cname" placeholder="Company Name" data-rule="minlen:4" data-msg="Please enter a valid Company Name" required/>
          <div class="validate"></div>
        </div>
        <div class="col-md-6 form-group">
          <input type="text" class="form-control" name="tel" id="tel" placeholder="Telephone" data-rule="minlen:4" data-msg="Please enter a valid Phone Number" required/>
          <div class="validate"></div>
        </div>
        <div class="col-md-6 form-group">
          <input type="email" class="form-control" name="email" id="email" placeholder="Your Email" data-rule="email" data-msg="Please enter a valid Email" required/>
          <div class="validate"></div>
        </div>
      </div>
      <div class="form-group section-bg">
        <textarea class="form-control" name="message" id="message" rows="5" data-rule="required" placeholder="Message"  required></textarea>
      </div>
      <input type="submit" class="form-control" name="send" value="Send Message"/>
    </form>

这是PHP电子邮件文件

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

if (isset($_POST['send'])) {
     $to = 'Owners Email';
     $subject = 'Business Inquiries';
     $name = 'Full Name: ' . $_POST['name'] . "\r\n\r\n";
     $cname = 'Company Name: ' . $_POST['cname'] . "\r\n\r\n";
     $tel = 'Telephone Number: ' . $_POST['tel'] . "\r\n\r\n";
     $emails = 'Email: ' . $_POST['email'] . "\r\n\r\n";
     $message = 'Message: ' . $_POST['message'];
     
     $email_from = 'Owners business website name';
    
     $email_body = "$name\n $cname\n $emails\n $tel\n $message\n";

     $headers = "From: $email_from \r\n";
     $headers .= 'Content-Type: text/plain; charset=utf-8';
    
     $email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
     if($email) {
         $headers .= "\r\nReply-To: $emails";
     }


     $success = mail($to, $subject, $email_body, $headers);
}

?>
<body>
<?php if (isset($success) && $success) { ?>
<h1>Thank You!</h1>
Your Message has been sent!
<?php } else { ?>
<h1>Oops!</h1>
Sorry, there was a problem sending your message. Please Try Again.
<?php } ?>
</body>

非常感谢。
您的信息已发送!
哎呀!
很抱歉,发送您的邮件时出现问题。请再试一次。

如需任何帮助,我们将不胜感激

您必须检查所有需要设置的字段,例如,您可以选择检查每个要设置的字段

   <?php
   
   $name = filter_input (INPUT_POST, 'name', FILTER_SANITIZE_SPECIAL_CHARS);
   $cname = filter_input (INPUT_POST, 'cname', FILTER_SANITIZE_SPECIAL_CHARS);
   $tel = filter_input (INPUT_POST, 'tel', FILTER_SANITIZE_NUMBER_INT);
   $message = filter_input (INPUT_POST, 'message', FILTER_SANITIZE_SPECIAL_CHARS);
   $email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);

   if (!empty($name) && !empty($cname) && !empty($tel) && !empty($message) ) {
        $to = 'Owners Email';
        $subject = 'Business Inquiries';
        $name = 'Full Name: ' . $name . "\r\n\r\n";
        $cname = 'Company Name: ' . $cname . "\r\n\r\n";
        $tel = 'Telephone Number: ' . $tel . "\r\n\r\n";
        $emails = 'Email: ' . $email . "\r\n\r\n";
        $message = 'Message: ' . $message;
        
        $email_from = 'Owners business website name';
       
        $email_body = "$name\n $cname\n $emails\n $tel\n $message\n";
   
        $headers = "From: $email_from \r\n";
        $headers .= 'Content-Type: text/plain; charset=utf-8';
       
        
        if($email) {
            $headers .= "\r\nReply-To: $emails";
        }
   
   
        $success = mail($to, $subject, $email_body, $headers);
   }
   
   ?>


在PHP中检查您在
$\u POST
中使用的所有字段中是否包含数据。只有在他们这样做的情况下才发送电子邮件。。。。simplesif您对$email\u body变量what are print进行了回应?@riggsfully感谢您的输入使用$\u POST的所有字段中都有数据,还有其他建议吗?这是一个奇怪的问题:“有人能不能解释一下,因为老板还在抱怨收到的是空白邮件……”“应该如何”解释你的脚本是否有效“以某种方式帮助解决您的问题?如果收到空邮件,您就有问题了。不管您的脚本是否健壮,都有明显的问题。没办法逃避。我真的希望你不要试图用“看,剧本不会出错,所以你不能收到空邮件”这句话来争论。是的,你知道吗?然后检查每个使用的$\u POST变量的内容
Required
适用于兼容浏览器,但如果有人使用的是旧的/坏的浏览器,或者一个坏演员甚至没有使用您的表单,只是在您的
acknowledge.php上发布一些废话,则不适用