PHP联系人表单消息不显示在电子邮件中。

时间:2021-12-29 18:15:32

I have PHP script that works fine. When the email is sent, everything works fine except for the message. Here's what I get in the email: New Mail from:

我有一个可以正常工作的PHP脚本。发送邮件时,除了消息之外,一切正常。以下是我从邮件中得到的:

 Name: asdf 
 Phone: 9879879879 
 Email: asdf@dfsg.com 

 Project Location: asdf 
 Message:

As you can see, the "Message: " doesn't show what was typed in the form. Here is the code: Cotnact form body { font-family: Verdana, sans-serif; font-size: 12px; }

正如您所看到的,“消息”没有显示表单中键入的内容。这是代码:Cotnact form body {font-family: Verdana, sans-serif;字体大小:12 px;}

Contact

Variables/ //Type in your email address to receive the mail $to = "ironspeed12@yahoo.com";

//If you wish to show a logo in the mail, paste the URL here.
//For example: http://mywebsite.com/mylogo.png
//Remember http://
$logo_url = "http://arniesremodeling.com/Logo1.png";  
/*VARIABLES END*/
if(isset($_POST['name'])){
$name = preg_replace('/[^A-Za-z0-9\-]/','', $_POST['name']);
$phone = preg_replace('/[^0-9]/',"", $_POST['phone']);
$email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
$location = preg_replace('/[^ A-Za-z0-9,\-]/',"", $_POST['name']);
$message = preg_replace('/[^ A-Za-z0-9,.?\-]/',"", $_POST['message']);
$ip_address = $_SERVER['REMOTE_ADDR'];

if($name == "" or $phone == "" or $location == "" or $message == ""){
echo'One or more fields has not been filled out.<br>
Please go back and try again.';
}
elseif(strlen($phone) != 10){
echo'Invalid Phone Number.<br>
Please enter a valid phone number.';
}
elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)){
echo'The email address could not be validated.<br>
Please go back and verify your email address.';
}
else{//All checks passed
if(isset($logo_url) and strlen($logo_url) > 3){
$logo = '<img src="'.$logo_url.'" alt="" style="border:none;"><br><br>';
}
else{
$logo = "";
}
$headers = "From: Arnie's Remodeling";
$headers .= "Reply-To: $email\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=utf-8\r\n";
$message = '<html><head><style>body {font-family: Verdana; font-size: 12px;}        </style></head><body>';
$message .= "$logo
New Mail from:<br><br>
Name: $name <br>
Phone: $phone <br>
Email: $email <br>
IP: $ip_address <br><br>

Project Location: $location <br>

Message:<br>
".nl2br($message)."

</body></html>";
$sendMail = mail($to, $location, $message, $headers);
if($sendMail){
echo'Thank You, the mail has been successfully sent!<br><br>';
}
else{
echo'An error occurred and the mail could not be sent.<br>
Please try again later.';
}
}
}
else{
header("location:contact.html");
}
?>
</body>
</html>

1 个解决方案

#1


1  

Do not reuse the $message variable. First you set it to this:

不要重用$message变量。首先你把它设置为:

$message = preg_replace('/[^ A-Za-z0-9,.?\-]/',"", $_POST['message']);

And then a few lines later you set it to this:

然后几行之后,你将它设置为:

$message = '<html><head><style>body {font-family: Verdana; font-size: 12px;}        </style></head><body>';

For a quick fix - replace the first line with:

快速修复-替换第一行:

$mess= preg_replace('/[^ A-Za-z0-9,.?\-]/',"", $_POST['message']);

And then at the end of the script use this:

在脚本的最后使用这个:

".nl2br($mess)."

#1


1  

Do not reuse the $message variable. First you set it to this:

不要重用$message变量。首先你把它设置为:

$message = preg_replace('/[^ A-Za-z0-9,.?\-]/',"", $_POST['message']);

And then a few lines later you set it to this:

然后几行之后,你将它设置为:

$message = '<html><head><style>body {font-family: Verdana; font-size: 12px;}        </style></head><body>';

For a quick fix - replace the first line with:

快速修复-替换第一行:

$mess= preg_replace('/[^ A-Za-z0-9,.?\-]/',"", $_POST['message']);

And then at the end of the script use this:

在脚本的最后使用这个:

".nl2br($mess)."