最近我一直有我的PHP联系表格的问题。它工作了两年,我没有改变任何东西,所以我不太明白问题所在。下面的代码:PHP联系表格通过发件人地址发送邮件地址
<?php
// Check for header injections
function has_header_injection($str) {
return preg_match ("/[\r\n]/", $str);
}
if(isset ($_POST['contact_submit'])) {
$name = trim($_POST['name']);
$email = trim($_POST['email']);
$tel = trim($_POST['tel']);
$msg = $_POST['message'];
// check to see if name or email have header injections
if (has_header_injection($name) || has_header_injection($email)){
die();
}
if (!$name || !$email || !$msg) {
echo '<h4 class="error">All Fields Required</h4><a href="page.php" target="_blank" class="button link">Go back and try again</a>';
exit;
}
// add the recipient email to a variable
$to = "[email protected]";
// Create a subject
$subject = "$name sent you an email";
// construct your message
$message .= "Name: $name sent you an email\r\n";
$message .= "Telephone: $tel\r\n";
$message .= "Email: $email\r\n\r\n";
$message .= "Message:\r\n$msg";
$message = wordwrap(message, 72);
// set the mail header
$headers = "MIME=Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
$headers .= "\r\nFrom: " . $name . " \r\n\r\n" . $tel . " \r\n\r\n " . $msg . "\r\n\r\n <" . $email . "> \r\n\r\n";
$headers .= "X-Priority: 1\r\n";
$headers .= "X-MSMail-Priority: high\r\n\r\n";
// Send the Email
mail($to, $subject, $message, $headers);
?>
<!--- END PHP CONTACT FORM -->
<!-- Show Success message -->
<h2>Thanks for contacting Us!</h2>
<p align="center">Please allow 24 hours for a response</p>
<p><a href="index.php" class="button block">« Go to Home Page</a></p>
<?php } else { ?>
<form method="post" action="" id="contact-form">
<label for="name">Your Name</label>
<input type="text" id="name" name="name">
<label for="tel">Your Phone Number</label>
<input type="tel" id="tel" name="tel">
<label for="email">Your Email</label>
<input type="email" id="email" name="email">
<label for="message">the date/time you wish to sign up for</label>
<textarea id="message" name="message"></textarea>
<br>
<input type="submit" class="button next" name="contact_submit" value="Sign Up">
</form>
<?php } ?>
然而,当接触形式提交的,而不是将信息发送到电子邮件的正文中,它发送它在“发件人”电子邮件的部分。例如,电子邮件可能会说:
要:Web开发
来源:鲍勃·史密斯888-888-8888周一,周三周五
主题:鲍勃·史密斯给你发一封电子邮件!
身体: X优先:1X-MSMAIL优先:高
消息
我真的不知道发生了什么事情,所以任何帮助,将不胜感激!
'$头= “\ r \ n从:”。 $名称。 “\ r \ n \ r \ n”。 $ tel。 “\ r \ n \ r \ n”。 $味精。 “\ r \ n \ r \ n <”。 $电子邮件。 “> \ r \ n \ r \ n”;这条线有你所有的POST数据 ' –