我的php联系人表单代码有小问题。 我的网站使用变音符号,效果很好。但是,使用任何[0-9]变音符号后,提交后我的联系表单输入看起来都像“ÄÅ¡Å”。
PHP文件:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$service = $_POST['service'];
$message = $_POST['message'];
$from = $name;
$to = 'info@email.com';
$subject = "$name - $service";
$body = "Jméno zákazníka: $name\nE-Mail zákazníka: $email\nTelefonní číslo: $phone\nservice: $service\nZpráva: $message ";
if (mail ($to, $subject, $body, $from, $headers)) {
$headers = array("Content-Type: text/html; charset=UTF-8");
} else {
echo "Failed";
}
?>
提交联系表格后的电子邮件输出:
First Last Name
Jméno zákazníka: Name
E-Mail zákazníka: email
Telefonní císlo: phone number
service: havárii
Zpráva: ÄÅ¡Å
名称,电子邮件,电话,服务,消息等“标头”是用变音符号写的,但在此输入例如:Zpráva:由于某种原因,不支持ÄÅ¡Å。
还html文件包括
<meta charset="utf-8">
更新1
试图将$ headers = array(“ Content-Type:text / html; charset = UTF-8”);在提交联系表格之前,但未进行任何更改。仍然不支持以下任何字符:ěščřžýáíé
更多信息
还添加了最容易出现问题的html部分
<div class="col-lg-12">
<textarea name="message" id="" cols="30" rows="10" placeholder="Zpráva">
</textarea>
</div>
答案 0 :(得分:1)
您需要将标头作为mail()
的第4个参数:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$service = $_POST['service'];
$message = $_POST['message'];
$from = $name;
$to = 'info@email.com';
$subject = "$name - $service";
$body = "Jméno zákazníka: $name\nE-Mail zákazníka: $email\nTelefonní číslo: $phone\nservice: $service\nZpráva: $message ";
$headers = [
'Content-Type' => 'text/plain; charset=UTF-8',
'From' => $from,
];
if (mail($to, $subject, $body, $headers)) {
echo "Sent";
} else {
echo "Failed";
}
请注意,这是用于纯文本电子邮件,而不是HTML电子邮件。
From
的格式应为:Name <email@example.com>
,因此,如果您没有信息,请不要包含它。