0

メールを送信するためのフォームを備えた Web サイトがあります。残念ながら、今日クライアントから電子メールを受け取りましたが、キリル記号が正しく表示されなかったため、メッセージ本文が読めませんでした。

phpコードは次のとおりです。

<?php
$owner_email = $_POST["owner_email"];
$headers = 'From:' . $_POST["email"];
$subject = 'Имате съобщение изпратено през формуляра на вашия WEB сайт от ' . $_POST["name"];
$messageBody = "";

if($_POST['name']!='nope'){
    $messageBody .= '<p>Visitor: ' . $_POST["name"] . '</p>' . "\n";
    $messageBody .= '<br>' . "\n";
}
if($_POST['email']!='nope'){
    $messageBody .= '<p>Email Address: ' . $_POST['email'] . '</p>' . "\n";
    $messageBody .= '<br>' . "\n";
}else{
    $headers = '';
}
if($_POST['state']!='nope'){        
    $messageBody .= '<p>State: ' . $_POST['state'] . '</p>' . "\n";
    $messageBody .= '<br>' . "\n";
}
if($_POST['phone']!='nope'){        
    $messageBody .= '<p>Phone Number: ' . $_POST['phone'] . '</p>' . "\n";
    $messageBody .= '<br>' . "\n";
}   
if($_POST['fax']!='nope'){      
    $messageBody .= '<p>Fax Number: ' . $_POST['fax'] . '</p>' . "\n";
    $messageBody .= '<br>' . "\n";
}
if($_POST['message']!='nope'){
    $messageBody .= '<p>Message: ' . $_POST['message'] . '</p>' . "\n";
}

if($_POST["stripHTML"] == 'true'){
    $messageBody = strip_tags($messageBody);
}

try{
    if(!mail($owner_email, $subject, $messageBody, $headers)){
        throw new Exception('mail failed');
    }else{
        echo 'mail sent';
    }
}catch(Exception $e){
    echo $e->getMessage() ."\n";
}
?>

私はphpが初めてなので、質問は次のとおりです。

キリル文字で動作させるには、このコードの何を変更すればよいですか?

4

4 に答える 4

1

あなたの行の後にこれを追加してください$headers = ...

$headers .= "\n".'MIME-Version: 1.0'."\n".'Content-Type: text/html; charset="UTF-8";'."\n".'Content-Transfer-Encoding: 7bit';
于 2013-02-16T12:02:03.547 に答える
0

試す

htmlentities($ _ POST ['message'])代わりに$ _POST['message']のみ

于 2013-02-16T12:00:13.037 に答える
0

\nContent-type: text/plain; charset=\"utf-8\"\nContent-Transfer-Encoding: 8bit変数の最後に追加し$headerます(これは、演算子を使用して行うことができます.=)。

キリル文字はプレーンASCIIには存在しないため、別の文字エンコードを使用する必要があります。

于 2013-02-16T12:01:32.370 に答える
0

試す

$header .= "\nContent-type: text/plain; charset=\"utf-8\"";

このファイルをutf-8で保存します

于 2013-02-16T11:58:24.970 に答える