【问题标题】:After sending a message in Cyrillic from contact form, I receive messages but not in Cyrillic PHP从联系表格发送西里尔文消息后,我收到消息但不是西里尔文 PHP
【发布时间】:2017-11-06 17:14:55
【问题描述】:

从联系表发送西里尔文消息后,我收到消息但不是西里尔文。我尝试在 html 中输入编码,尝试 Stack Overflow 上的内容,我仍然无法做到。这是我的 PHP 文件的数据

<?php

if(isset($_POST['send'])) {
    // Prepare the email
    $to = 'mail@abv.bg';

    $name = $_POST['name'];
    $mail_from = $_POST['email'];
    $subject = 'Message sent from website';
    $message = $_POST['message'];

    $header = "From: $name <$mail_from>";

    // Send it
    $sent = mail($to, $subject, $message, $header);
    if($sent) {
        echo 'Вашето съобщение беше изпратено успешно!';
    } else {
        echo 'Съжаляваме,но вашето съобщение не може да бъде изпратено.';
    }
}
?>

【问题讨论】:

  • 您尝试将编码放在哪里?尝试做$header = [ "From: $name &lt;$mail_from&gt;", "Content-Type: text/html;charset=utf-8" ]
  • 它不起作用,我试过 $headers = ."Content-Type: text/html;charset=utf-8";
  • 我没有收到你代码的邮件
  • 你没有尝试我的建议。我建议了一个包含 2 个条目的数组。你只是做了两个之一
  • 我试过了,没有收到消息

标签: javascript php email contact-form cyrillic


【解决方案1】:

确保每个页面(表单和操作/接收器)使用相同的编码(UTF-8 或您喜欢的扩展 ASCII,阅读 https://en.wikipedia.org/wiki/Windows-1251)。

在某些情况下,PHP 有一个单独的用户配置文件(我猜,除其他外,告诉 PHP 解释器,使用什么编码,不知何故忽略了页眉)。

所以有一个全局php.ini,共享主机上的用户通常无法访问。还有一个基于用户的配置文件,因此在您的服务器上检查public_html 文件夹之外的配置文件。我不记得文件叫什么了,不过它是自我描述的。 在该文件中设置编码,然后 Bob 就是你的阿姨。

【讨论】:

    猜你喜欢
    • 2011-09-17
    • 1970-01-01
    • 2012-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-11
    • 2011-10-08
    相关资源
    最近更新 更多