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