フォームに日本語が入力されていることをチェックするのはむずかしい

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

魚沼情報サービス、パソコン教室くりっくのサイトには お問い合わせレッスン予約 などのフォームを 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;
}

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

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

日本語判定に問題あり

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

誤判定の対策は?

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

ちょっと待てよ…

「WordPress 操作説明希望」みたいな場合はどうするんだ…?

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

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

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

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

なかなかいいアイディアではないかと…。

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

対馬 俊彦
対馬 俊彦魚沼情報サービス・ベクトル公式テクニカルパートナー
【日本全国対応】WordPress のサイト制作、設定、カスタマイズ、トラブルでお悩み、お困りの方、ベクトル公式テクニカルパートナーがお手伝いいたします。

Lightning / VK Blocks / VK Filter Search のサポート、カスタマイズを得意としています。

遠方からのご依頼の場合、打ち合わせ・サポートを Zoom や電子メール・電話などを併用して行わせていただきます。

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

デザイナー様、制作業者様のサイト制作のお手伝いも数多く行っています。難しい部分のコーディング ( PHP / CSS / jQuery ) をやってほしい、いま人手が足りない等、お仕事の依頼をお待ちしています。

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

メールでのお問い合わせはこちら

Lightning テーマ使用

中小企業様、個人事業主様向け

最適なホームページ

を制作いたします

制作費用クオリティを落とさずに



価格を抑えたサイトを制作します
必要十分お問い合わせフォーム、新着情報など



必要なものが最初から揃っています
サポート1年間のサポートがついて安心
初めてでもホームページを活用できます