- ベストアンサー
掲示板で日本語を含まない文章を禁止したい
perlのcgiの掲示板で、荒らしの書込みがひどいです。 おそらく外国の悪質ないたずらで、勝手に書き込まれて いっているものです。毎日50件くらいあって、削除するのも大変です。 荒らしの文章には平仮名、片仮名、漢字が含まれていないので、 日本語を入力しないと書き込めないようにしたいです。 日本語かどうかの判別は、平仮名の有無にしたいと思います。 とあるサイトからダウンロードさせてもらった掲示板 なのですが、そこのサイトはここ2年間くらい更新されていないので、 相談しても無駄だと思ってので、ここでききたいとおもいました。 前に同じような質問(http://oshiete1.goo.ne.jp/kotaeru.php3?qid=2339456) をしたのですが、状況が変わったのでまた質問させていただきました。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
前にも似たような書き込みがありましたが、画像認証を使ってプログラムからの書き込みを排除するのが一番いいと思います。 http://www.yo.rim.or.jp/~m_masa/ ここのBBSは画像認証を使っています。 プログラムによる機械的な書き込みを完全に排除することができるそうです。 日本語入力うんぬんと言うのは抜本的な解決方法ではないように思いますが。
その他の回答 (2)
- taaaaaaa
- ベストアンサー率38% (31/80)
回答1の方に似てますが、コメントをチェックするのがいいのでは、 ・さい ・する ・ます ・ました いずれかが含まれてないと、投稿データは保存せずに終了するようにするとか。 どうでしょうか?
俺が知ってるのは、「全角の有無」で判別する方法です。 unless ( $comment =~ /[\x81-\x9f\xe0-\xef]/ ) { # 日本語ナシ(シフトJISの場合) } unless ( $comment =~ /(\x8e.|\x8f..|[^\x00-\x7F\x8e\x8f].)/ ) { # 日本語ナシ(EUCの場合) } unless ( $comment =~ /([\xc0-\xcf\xd0-\xdf].|[\xe0-\xef]..)/ ) { # 日本語ナシ(UTF-8の場合) } 上記3つのうちどれかを使って判別できるはずです。
補足
>「全角の有無」で判別 その発想はありませんでした。 ただ、それでは(現在はないが)中国製の荒らし に対処できないと思いました。
お礼
どうもありがとうございます。 管理してる人は自分だけじゃないので 案の一つとして考えさせていただきます。 >日本語入力うんぬんと言うのは抜本的な解決方法ではない その通りなんですよね。今まで無かっただけで、 日本制の荒らしもいるはずですしね・・・