1

メッセージを電子メールに送信する簡単な連絡フォーム(名前、電子メール、件名、メッセージ)があります。jQueryを使用してクライアント側の検証を設定し、PHPスクリプトを使用してサーバー側の検証を設定しました。それらをAjaxに接続しました。そしてそれは機能しますが、ラテン文字でデータを挿入する場合に限ります。

キリル文字でデータを挿入すると、同じフォームが機能しません。メッセージは送信されません。インターネットで同様のトピックを検索し、YTでいくつかのチュートリアルを検索しましたが、4〜5日経っても何も得られませんでした。多分それは.htaccessファイルにいくつかのコードを入れるようなものですが、私は本当に知りません。

4

1 に答える 1

3

これは基本的なエンコーディングの問題です。フォームがUTF-8としてPOSTに設定されていることを確認します。

<form method="post" action="/your/url/" accept-charset="UTF-8">
</form>

また、ページが正しいヘッダーを使用して配信されていることを確認してください。

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

次に、正しいUT8ヘッダーを使用して電子メールを送信していることを確認します。私はこのコードを見つけました:

function mail_utf8($to, $subject = '(No subject)', $message = '', $header = '') {
  $header_ = 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/plain; charset=UTF-8' . "\r\n";
  mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header_ . $header);
}

ソース: http: //bitprison.net/php_mail_utf-8_subject_and_message

于 2013-01-23T14:03:13.557 に答える