如何更改php代码来解决字符编码问题?

问题描述 投票:0回答:1

我写了这个 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");
}

}

?>`

有人使用验证码在我的网站上填写我的表单后,它会向我的服务器端电子邮件地址发送电子邮件。

我希望电子邮件采用 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 代码中吗?

php forms utf-8
1个回答
0
投票

您可以尝试更改标题:

header("Content-Type: text/html; charset=UTF-8;Location: feedback/koszonjuk;");

header("Content-Type: text/html; charset=UTF-8;Location: feedback/error;");
© www.soinside.com 2019 - 2024. All rights reserved.