提问人:Bálint Forgács 提问时间:10/14/2023 最后编辑:OlivierBálint Forgács 更新时间:10/17/2023 访问量:64
如何更改php代码以解决字符编码问题?
How to change php code to solve character coding issue?
问:
我写了这个php电子邮件发件人代码:
<?php
if($_SERVER["REQUEST_METHOD"] === "POST") {}
if (isset($_POST['submit'])) {
$name = $_POST['name'];
$subject = $_POST['subject'];
$mailFrom = $_POST['mail'];
$phone = $_POST['phone'];
$company = $_POST['company'];
$website = $_POST['website'];
$message = $_POST['message'];
$recaptcha_secret = "xy";
$response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$recaptcha_secret."&response=".$_POST['g-recaptcha-response']);
$response = json_decode($response, true);
if($response["success"] === true){
$mailTo = "[email protected]";
$headers = "From: ".$mailFrom;
$txt = "Feladó: ".$name."\nTelefonszám: ".$phone."\nCég: ".$company."\nWeboldal: ".$website."\n\nÜzenet: ".$message;
mail($mailTo, $subject, $txt, $headers);
header("Location: feedback/koszonjuk");
}else{
header("Location: feedback/error");
}
}
?>`
有人在我的网站上用 recaptcha 填写我的表格后,它会将电子邮件发送到我的服务器端电子邮件地址。
我想以 UTF-8 字符编码接收电子邮件,但我看不到问题。这些字符在以下表单中的电子邮件中管理不善:öüóőúéá
表单所在的 HTML 页面设置为 UTF-8。 HTML 表单代码:
<form action="ajanlatkeres.php" method="post" class="ajanlatkeres-form" accept-charset="utf-8">
<h2>Általános adatok</h2>
<input type="text" name="name" placeholder="Teljes név*" class="feedback-input" required>
<input type="text" name="mail" placeholder="E-mail*" class="feedback-input" required>
<input type="text" name="phone" placeholder="Telefonszám*" class="feedback-input" required>
<h2>Vállalkozás adatai</h2>
<input type="text" name="company" placeholder="Márkanév" class="feedback-input">
<input type="text" name="website" placeholder="Weboldal" class="feedback-input">
<h2>Üzenet</h2>
<input type="hidden" name="subject" value="Ajánlatkérés">
<textarea name="message" placeholder="Írj pár sort projektedről*" class="feedback-input" required></textarea>
<div class="g-recaptcha" id="rcaptcha" data-theme="dark" data-sitekey="xy"></div>
<br/>
<button id="submit_form" class="contactbutton" type="submit" name="submit">Küldés</button>
</form>
什么原因会导致此问题?它在我的 php 代码中吗?
答:
-1赞
BugHunter
10/17/2023
#1
尝试在标头中设置content-type and character encoding
$headers = "From: " . $mailFrom . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=UTF-8\r\n";
评论
0赞
mickmackusa
10/17/2023
Olivier 早些时候建议提问者看看这个潜在的解决方案,它已经在 Stack Overflow 上可用了。PHP电子邮件编码?在发布答案之前,请阅读评论和其他答案。我们不想用多余的建议来膨胀 Stack Overflow。此答案不会为 Stack Overflow 增加任何新价值。
评论
text/html
text/plain