日本語が入力されていることをチェックするのはけっこうむずかしい【Contact Form 7】

こんにちは、魚沼情報サービスの対馬(つしま)です。

魚沼情報サービス、パソコン教室くりっくのサイトには お問い合わせレッスン予約 などのフォームを Contact Form 7 を使って設置してありますが、スパム対策として以下のことを行っています。

Contact Form 7 のフォームで行っているスパム対策

  • Google の reCAPTCHA
  • 日本語が入力されているときだけ受け付ける

悪質なスパムの場合は reCAPTCHA が完璧にはじいてくれるのですが、それ以外のスパム (たぶん手作業でやってるんだろうな…?) だとフォームから送信されちゃうことがあります。

そういうスパムってほぼすべてが海外からなので、日本語が入力されているときだけ受け付ける設定も行っています。

日本語判定 functions.php にフィルターフックを記述

具体的には、functions.php に以下のフィルターフックを記述して、ひらがなが含まれるときだけ受け付けるようにしています。

/*-------------------------------------------*/
/*    Contact Form 7 の <textarea> にひらがなが含まれなければエラーにする
/*-------------------------------------------*/
add_filter('wpcf7_validate_textarea', 'wpcf7_validation_textarea_hiragana', 10, 2);
add_filter('wpcf7_validate_textarea*', 'wpcf7_validation_textarea_hiragana', 10, 2);

function wpcf7_validation_textarea_hiragana($result, $tag)
{
    $name = $tag['name'];
    $value = (isset($_POST[$name])) ? (string) $_POST[$name] : '';

    if ($value !== '' && !preg_match('/[ぁ-ん]/u', $value)) {
        $result['valid'] = false;
        $result['reason'] = array($name => '本文は日本語でご記入ください。Please type your message in Japanese.');
    }

    return $result;
}

まれに日本語判定に問題あり

上記のやり方で日本語で入力されていることの判定はほぼうまくいっていたのですが、レッスンの希望内容の入力で以下のケースがありました。

日本語判定に問題あり

日本語で入力しているのに、「日本語でご記入ください」と表示するのはダメですね。

誤判定の対策は?

判定のアルゴリズムにカタカナを含めようかとも考えたのですが…

ちょっと待てよ…

「制作費用見積」みたいな漢字だけの場合はどうするんだ…?

そこまで考えてしまうときりがないな…

ということで、このように ↓ しました。

日本語入力の誤判定の対策

このように入力した方は、すごい!! AIだ!! と驚かれるかもしれません。(^^♪

なかなかいいアイディアではないかと… (自画自賛)

更新情報を受取る

サイト運営者プロフィール

対馬 俊彦
対馬 俊彦魚沼情報サービス 代表
新潟県南魚沼市・魚沼市を中心に、地域の皆様がパソコンやインターネットを有効活用して業務効率化・課題解決を図るお手伝いを1999年から行ってまいりました。

WordPress を使用したサイト制作・カスタマイズは全国どこからでも承ります。ベクトルが販売している WordPress テーマ「Lightning」「Katawara」および同社のプラグイン「VK Blocks」「VK Filter Search」のカスタマイズを得意としています。遠方からのご依頼の場合、打ち合わせ・サポートを Zoom や電子メール・電話などを併用して行わせていただきます。

オンラインレッスン形式でのホームページ制作サポートも行っています。お客様ご自身でホームページを開設・運用する上で、うまくいかない部分をサポートいたします。設定やカスタマイズを手伝ってもらいたい、同時に便利な使い方や設定方法、カスタマイズのやり方も知ることができたら...という方にご好評いただいています。

* ドメインやサーバーの契約・申込み
* WordPress やテーマ、プラグインのインストール
* ドメインの移管・移転
* 日常の更新作業
なども含めて、サイトの制作・運用全般をお手伝いできます。

ご要望をうかがった上で費用見積り(無料)を提示させていただきますので、お気軽にお問い合わせください。

» ご相談・お問い合わせはこちらからどうぞ

WordPress サイト制作・カスタマイズ・サポートを承ります

WordPress を使用したサイト制作・カスタマイズ・サポートを全国どこからでも承っています。ベクトルが販売している WordPress テーマ「Lightning」「Katawara」および同社のプラグイン (VK Blocks Pro ・ VK Filter Search Pro) を使ったサイト制作・カスタマイズを得意としています。遠方からのご依頼の場合、打ち合わせ・サポートを Zoom や電子メール・電話などを併用して行わせていただきます。

オンラインレッスン形式でのホームページ制作サポートも行っています。お客様ご自身でホームページを開設・運用する上で、うまくいかない部分をサポートいたします。設定やカスタマイズを手伝ってもらいたい、同時に便利な使い方や設定方法、カスタマイズのやり方も知ることができたら...という方にご好評いただいています。

* ドメインやサーバーの契約・申込み
* WordPress やテーマ、プラグインのインストール
* アクションフック・フィルターフック・jQuery・CSS によるカスタマイズ
* ドメインの移管・移転
* 日常の更新作業
なども含めて、サイトの制作・運用全般をお手伝いできます。

ご要望をうかがった上で費用見積り(無料)を提示させていただきますので、まずはお気軽にお問い合わせください。