让我先解释一下我的问题。
我有一份自由职业,当时我正在为一家商业公司设计和开发一个网站。我编写了电子邮件表单,并将其附加到PHP发送表单,它会收集填写该表单的任何人的姓名,电话,电子邮件,主题和消息,然后将其发送给企业所有者。
最近,所有者一直抱怨收到空白电子邮件,并认为他们丢失了业务。我回到了PHP代码并添加了一个验证系统,甚至添加了重定向,如果提交正确,它将重定向到包含2个页面选项“很抱歉出现问题”或“谢谢您发送电子邮件”
我也进入了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>
任何帮助将不胜感激
答案 0 :(得分:0)
您必须检查所有需要设置的字段,例如,可以选择检查每个要设置的字段。
<?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);
}
?>