2

http://youhack.me/2010/07/22/create-a-fancy-contact-form-with-css-3-and-jquery/からダウンロードした ajax 連絡フォームを使用しています。

送信時にキリル記号を使用できないため、UTF 以外はすべて問題なく動作します。

php:

$name = $_POST['name']; // contain name of person
$email = $_POST['email']; // Email address of sender 
$web = $_POST['web']; // Your website URL
$body = $_POST['text']; // Your message 
$receiver = "receiver@domain.com" ; // hardcorde your email address here - This is the email address that all your feedbacks will be sent to 

if (!empty($name) & !empty($email) && !empty($body)) {
    $body = "Name: {$name}\n\nSubject: {$web}\n\nMessage: {$body}";
    $send = mail($receiver, 'Contact from domain.com', $body, "From: {$email}");
    if ($send) {
        echo 'true'; //if everything is ok,always return true , else ajax submission won't work
    }
}

検証には jquery.validationEngine-en を使用します。私のhtmlにはすでにヘッダーに「Content-Type」 content="text/html; charset=utf-8" があります。

私はphpとjqueryを初めて使用するので、送信時にUTF-8を機能させるためのガイダンスをいくつか提供します。ありがとう :)

編集:必須フィールドでキリル文字 (čšćđ) を使用しようとすると、「文字のみを使用してください」という ajax 入力エラーが発生します。必須ではないフィールドにキリル文字を含むフォームを送信すると、受信して電子メールが送信され、キリル文字を除くすべての文字が表示されます。

編集2:受信者をgmail(Webメール)に設定すると、Ajaxで使用できない1つのフィールドを除いて、キリル文字が正常に表示されます(Reinderの回答からの正規表現)。

Outlook (ローカル) で受信者を設定してフォームを送信すると、キリル文字が表示されません。例: ÄĹĄ oÄa ĹĄ ÄŽŠÄÄ

解決済み ガイドのReinderと David に感謝します! 今日それを解決します:)

4

2 に答える 2

2

使用しているプラ​​グインを見て、これは jquery.validationEngine-en.js 内の検証正規表現に関係していると思います

検証が「onlyLetter」に設定されている場合、次を使用してチェックします

/^[a-zA-Z\ \']+$/

ここではあなたの文字 čšćđ は許可されていません...

使用している言語の言語検証 JavaScript を作成し、その正規表現を変更する必要があります。たとえば、この投稿を見てください

次に、PHP ファイルとヘッダーのエンコーディングを確認します。これを PHP コードの先頭に配置します。

 header("Content-type: text/html; charset=utf-8");

次のように、PHP で値を出力するだけで、値が正しく表示されるかどうかを確認します。

echo $name;

それらがブラウザに正しく表示され、文字が正しく表示されていないのが電子メールだけである場合は、電子メールにもエンコーディング ヘッダーを渡す必要があります。

例:

$headers = "From: $name <$email>\n";
$headers .= "Content-Type: text/plain; charset=UTF-8\n";
$body = "Name: {$name}\n\nSubject: {$web}\n\nMessage: {$body}";
$send = mail($receiver, 'Contact from domain.com', $body, $headers);

PHP.NET Web サイトのmail 関数を見てください。

于 2012-10-22T08:16:24.713 に答える
1

mail()デフォルトの PHP関数を使用するよりも、日本語で作業する場合は、これが便利であることがわかりました。

http://bitprison.net/php_mail_utf-8_subject_and_message

于 2012-10-22T08:16:35.307 に答える