最近我一直有我的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數據 ' –