392323 ランダム
 ホーム | 日記 | プロフィール 【フォローする】 【ログイン】

テンプレートマスター

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

2006.12.17
XML
カテゴリ:CMS

以前、お手軽スパム対策を紹介しましたが、さらに精度(?)をあげたものを公開します。

「お問い合わせ」のスパム対策ですが、モジュール名はcontact。

変更箇所は2カ所。
modules\contact\templates\contact_contactusform.html
modules\contact\index.php

まずは、「contact_contactusform.html」で、
<form name="<{$contactform.name}>"・・・
に次の文を追加
<input type="hidden" name="sb_showtime" value="<{php}>echo time();<{/php}>" />

次に「index.php」で、
include "header.php";
に次の文を追加
//Spam buster! The post within 3 seconds is invalid.
$sb_timer = time() - $_POST['sb_showtime'];
$sb_min_sec = 3;
$sb_max_sec = 3600;
$sb_html_is_spam = true;
$sb_comment_name = "usersComments";

if( $_POST['submit']){
  $sb_spam_flag = false;
  if( $sb_timer < $sb_min_sec ) $sb_spam_flag = true;
  if( $sb_timer > $sb_max_sec ) $sb_spam_flag = true;
  if( $sb_html_is_spam == true ){
    if( ereg("^<.*>",$_POST[$sb_comment_name]) ) $sb_spam_flag = true;
  }
  if(  $sb_spam_flag == true){
    die;
  }

さてと、ちょっと長くなりました。ソースを判りやすくして改造しやすくしました。
設定部分は、次のようになっています。
$sb_min_sec = 3;⇒3秒以下はスパム
$sb_max_sec = 3600;⇒3600秒以上はスパム
$sb_html_is_spam = true;⇒先頭がタグコードつまり'<'ならスパム
$sb_comment_name = "usersComments";
⇒POST時の本文にあたるPOST名

今回はコンタクトモジュールでしたが、$_POST['submit']の部分と、設定の部分を弄れば他にも応用できると思います。

まだ時間が足りなくて他への応用がチェックできていないのですが、時間を見つけてUPしてきます。
「このモジュールは、こうしたらうまく言った!」って報告が有れば、是非お願いします。
複数集まるようでしたら、専用ページを作って管理しようかと思います。






お気に入りの記事を「いいね!」で応援しよう

最終更新日  2006.12.18 01:14:47


プロフィール

いまむぅら

いまむぅら

カテゴリ

お気に入りブログ

トップページのピッ… 楽天ブログスタッフさん

れびうぶろぐ @楽天… やすたろ〜さん
baby’s house FCセブンさん
アフィリエイト・プ… 藍玉.さん
大人の楽天生活 スロ… 楽天猫飼さん

コメント新着

t-master@ Re:私もそうです(08/26) よしそうたく201さん こんばんは。…
よしそうたく201@ 私もそうです こんばんは。 私もインフォシークのメー…
t-master@ Re:パソ環境に問題がありますが。。。(06/09) yumeri@nagoyaさん パソコン調子が悪いの…
t-master@ Re:ニュースを見て(06/30) yumeri@nagoyaさん >同感でした。 >え…
yumeri@nagoya@ パソ環境に問題がありますが。。。 アフィリエイトを始めたいという知人に薦…

フリーページ


© Rakuten Group, Inc.