Throws SPAM Away - Version 2.0

Version Description

IPIP IP

Download this release

Release Info

Developer tsato
Plugin Icon wp plugin Throws SPAM Away
Version 2.0
Comparing to
See all releases

Code changes from version 1.7 to 2.0

Files changed (3) hide show
  1. readme.txt +17 -4
  2. throws_spam_away.php +126 -29
  3. uninstall.php +4 -0
readme.txt CHANGED
@@ -1,12 +1,12 @@
1
  === Plugin Name ===
2
  Contributors: taman777
3
- Donate link: http://blog.gti.jp/
4
  Tags: comments, spam
5
  Requires at least: 3.1
6
- Tested up to: 3.4.1
7
- Stable tag: 1.7
8
 
9
- コメント内に日本語文字列が一つも存在しない場合あたかも受け付けたように振る舞いながらも無視
10
 
11
  == Description ==
12
  海外からのコメントスパムに対抗(?)する手段として開発したプラグインです。
@@ -22,6 +22,8 @@ Stable tag: 1.7
22
 
23
  日本語が一切入っていないコメントでも「NGキーワード」だけ設定したい場合を想定し
24
  日本語が入っていないと許可しない設定を「オン・オフ」出来るようになっています。
 
 
25
 
26
  バージョン1.5では「トラックバック」に対しても同様の規制を入れられるようになりました。
27
  トラックバック記事の内容に日本語を含まないものを無視します。
@@ -34,6 +36,9 @@ Stable tag: 1.7
34
  エラー画面表示の時間を「0」に設定していた場合はエラー画面を一切介さずリダイレクトするようにしました。
35
  0以上の場合の挙動は以前と変わらずJavaScriptで時間になったら戻ってきます。
36
 
 
 
 
37
  制作:佐藤 毅(さとう たけし) <a href="http://gti.jp/" target="_blank">博多 南福岡 ホームページ制作</a> 株式会社ジーティーアイ代表
38
 
39
  == Installation ==
@@ -61,6 +66,10 @@ e.g.
61
  == Screenshots ==
62
 
63
  == Changelog ==
 
 
 
 
64
 
65
  = 1.7 =
66
  エラー文言画面から戻ってくる時間の設定が「0」だった場合は一切エラー画面を介さずリダイレクトするようにしました。
@@ -117,6 +126,10 @@ NGキーワードに引っかかってしまった場合のエラー文言は別
117
  新規作成
118
 
119
  == Upgrade Notice ==
 
 
 
 
120
  = 1.4 =
121
  機能のオン・オフ設定追加
122
  NGキーワード(日本語及びその他言語)の設定による無視機能追加
1
  === Plugin Name ===
2
  Contributors: taman777
3
+ Donate link: http://gti.jp/
4
  Tags: comments, spam
5
  Requires at least: 3.1
6
+ Tested up to: 3.4.2
7
+ Stable tag: 2.0
8
 
9
+ コメントに日本語が使用されていないものや任意のIPアドレスからの投稿を無視するプラグイン
10
 
11
  == Description ==
12
  海外からのコメントスパムに対抗(?)する手段として開発したプラグインです。
22
 
23
  日本語が一切入っていないコメントでも「NGキーワード」だけ設定したい場合を想定し
24
  日本語が入っていないと許可しない設定を「オン・オフ」出来るようになっています。
25
+ 以前にスパムとしてチェックした投稿のIPアドレス及び、任意のIPアドレスでの制御も出来るようになっています。
26
+
27
 
28
  バージョン1.5では「トラックバック」に対しても同様の規制を入れられるようになりました。
29
  トラックバック記事の内容に日本語を含まないものを無視します。
36
  エラー画面表示の時間を「0」に設定していた場合はエラー画面を一切介さずリダイレクトするようにしました。
37
  0以上の場合の挙動は以前と変わらずJavaScriptで時間になったら戻ってきます。
38
 
39
+ バージョン2.0で、WordPressのcommentsテーブルを検索し「spam」扱いとなったコメントのIPを収集しそのIPからの投稿を無視出来る機能と任意のIPアドレスからの投稿を無視出来る機能をつけました。
40
+
41
+
42
  制作:佐藤 毅(さとう たけし) <a href="http://gti.jp/" target="_blank">博多 南福岡 ホームページ制作</a> 株式会社ジーティーアイ代表
43
 
44
  == Installation ==
66
  == Screenshots ==
67
 
68
  == Changelog ==
69
+ = 2.0 =
70
+ 下記の機能を追加しました。
71
+ ・コメント投稿者のIPアドレスが以前スパム扱いとなったものと同じIPアドレスからの投稿であれば無視するようにする機能
72
+ ・任意のIPアドレスからの投稿を無視するようにする機能
73
 
74
  = 1.7 =
75
  エラー文言画面から戻ってくる時間の設定が「0」だった場合は一切エラー画面を介さずリダイレクトするようにしました。
126
  新規作成
127
 
128
  == Upgrade Notice ==
129
+ = 2.0 =
130
+ 以前スパム扱いとなったコメントの投稿IPアドレスからの投稿を無視機能追加
131
+ 任意IPアドレスからの投稿を無視機能追加
132
+
133
  = 1.4 =
134
  機能のオン・オフ設定追加
135
  NGキーワード(日本語及びその他言語)の設定による無視機能追加
throws_spam_away.php CHANGED
@@ -1,10 +1,10 @@
1
  <?php
2
  /*
3
  Plugin Name: Throws SPAM Away
4
- Plugin URI: http://iscw.jp/wp/
5
- Description: コメント内に日本語の記述が一つも存在しない場合はあたかも受け付けたように振る舞いながらも捨ててしまうプラグイン
6
  Author: 株式会社ジーティーアイ さとう たけし
7
- Version: 1.7
8
  Author URI: http://gti.jp/
9
  */
10
 
@@ -19,6 +19,8 @@ $default_error_msg = '日本語を規定文字数以上含まない記事は投
19
  $default_ng_key_error_msg = 'NGキーワードが含まれているため投稿できません。';
20
  // 必須キーワードが含まれないエラー文言(初期設定)
21
  $default_must_key_error_msg = "必須キーワードが含まれていないため投稿できません。";
 
 
22
  /** オプションキー */
23
  // 日本語が存在しない時エラーとするかフラグ [tsa_on_flg] 1:する 2:しない
24
  // 日本語文字列含有数 (入力値以下ならエラー) [tsa_japanese_string_min_count] 数値型
@@ -37,6 +39,12 @@ $default_must_key_error_msg = "必須キーワードが含まれていないた
37
  // この設定をトラックバック記事にも採用するか [tsa_tb_on_flg] 1:する 2:しない
38
  // トラックバック記事にも採用する場合、ついでにこちらのURLが含まれているか判断するか
39
  // [tsa_tb_url_flg] 1:する 2:しない
 
 
 
 
 
 
40
 
41
  /** プロセス */
42
  $newThrowsSpamAway = new ThrowsSpamAway;
@@ -55,7 +63,7 @@ add_action('pre_comment_on_post', array(&$newThrowsSpamAway, "comment_post"), 1)
55
  */
56
  class ThrowsSpamAway {
57
  // version
58
- var $version = '1.7';
59
 
60
  public function __construct() {
61
  add_action( 'admin_menu', array( $this, 'admin_menu' ) );
@@ -66,7 +74,7 @@ class ThrowsSpamAway {
66
  // 注意文言表示
67
  $caution_msg = get_option('tsa_caution_message');
68
  echo '<div id="throwsSpamAway">';
69
- echo ($caution_msg != null? $caution_msg : $default_caution_msg);
70
  echo '</div>';
71
  return TRUE;
72
  }
@@ -84,27 +92,80 @@ class ThrowsSpamAway {
84
  }
85
 
86
  $comment = $_POST["comment"];
 
 
 
 
 
 
87
  if ($newThrowsSpamAway->validation($comment)) {
88
  return $id;
89
  }
90
- $error_msg = (
91
- $error_type != "must_word" ? (
92
- $error_type != "ng_word" ? (
93
- get_option('tsa_error_message') != null ?
94
- get_option('tsa_error_message') : $default_error_msg) :
95
- (get_option('tsa_ng_key_error_message') != null ?
96
- get_option('tsa_ng_key_error_message') : $default_ng_key_error_msg)) :
97
- (get_option('tsa_must_key_error_message') != null ?
98
- get_option('tsa_must_key_error_message') : $default_must_key_error_msg));
 
 
 
 
 
 
 
 
99
  // 元画面へ戻るタイム計算
100
- $back_time = get_option('tsa_back_second')!=null?(((int)get_option('tsa_back_second')) * 1000):0;
101
  // タイム値が0なら元画面へそのままリダイレクト
102
  if ($back_time == 0) {
103
  header("Location:".$_SERVER['HTTP_REFERER']);
104
  die;
105
  } else {
106
- wp_die( __(($error_msg != null? $error_msg : $default_error_msg)."<script type=\"text/javascript\">window.setTimeout(location.href='".$_SERVER['HTTP_REFERER']."', ".$back_time.");</script>", 'throws-spam-away'));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
107
  }
 
108
  }
109
 
110
  /**
@@ -130,7 +191,7 @@ class ThrowsSpamAway {
130
  if (preg_match('/[ァ-ヶー]+/u', $it)){ $count_flg += 1; }
131
  if (preg_match('/[ぁ-ん]+/u', $it)){ $count_flg += 1; }
132
  }
133
- $flg = ((get_option('tsa_japanese_string_min_count')!= null?
134
  intval(get_option('tsa_japanese_string_min_count')):0) < $count_flg);
135
  if ($flg == FALSE) {
136
  return FALSE;
@@ -139,7 +200,7 @@ class ThrowsSpamAway {
139
  // 日本語文字列チェック抜けたらキーワードチェックを行う
140
  // キーワード文字列群
141
  $ng_keywords = get_option('tsa_ng_keywords');
142
- if ($ng_keywords != null && $ng_keywords != "") {
143
  $keyword_list = mb_split(",", $ng_keywords);
144
  foreach ($keyword_list as $key) {
145
  if (preg_match('/'.trim($key)."/u", $comment)) {
@@ -151,7 +212,7 @@ class ThrowsSpamAway {
151
  // キーワードチェック(ブラックリスト)を抜けたら必須キーワードチェックを行う
152
  // キーワード文字列群 ※ブラックリストと重複するものはブラックリストのほうが優先です。
153
  $must_keywords = get_option('tsa_must_keywords');
154
- if ($must_keywords != null && $must_keywords != "") {
155
  $keyword_list = mb_split(",", $must_keywords);
156
  foreach ($keyword_list as $key) {
157
  if (preg_match('/'.trim($key)."/u", $comment)) {
@@ -187,6 +248,7 @@ class ThrowsSpamAway {
187
  * Admin options page
188
  */
189
  function options_page() {
 
190
  global $default_caution_msg;
191
  global $default_error_msg;
192
  global $default_ng_key_error_msg;
@@ -208,7 +270,7 @@ class ThrowsSpamAway {
208
  $chk_1 = " checked=\"checked\"";
209
  }
210
  ?>
211
- <label><input type="radio" name="tsa_on_flg" value="1"<?php echo $chk_1;?>/>&nbsp;する</label>&nbsp;
212
  <label><input type="radio" name="tsa_on_flg" value="2"<?php echo $chk_2;?>/>&nbsp;しない</label>
213
  </td>
214
  </tr>
@@ -264,7 +326,7 @@ class ThrowsSpamAway {
264
  $chk_1 = " checked=\"checked\"";
265
  }
266
  ?>
267
- <label><input type="radio" name="tsa_tb_on_flg" value="1"<?php echo $chk_1;?>/>&nbsp;する</label>&nbsp;
268
  <label><input type="radio" name="tsa_tb_on_flg" value="2"<?php echo $chk_2;?>/>&nbsp;しない</label>
269
  </td>
270
  </tr>
@@ -279,14 +341,45 @@ class ThrowsSpamAway {
279
  $chk_1 = " checked=\"checked\"";
280
  }
281
  ?>
282
- <label><input type="radio" name="tsa_tb_url_flg" value="1"<?php echo $chk_1;?>/>&nbsp;する</label>&nbsp;
283
  <label><input type="radio" name="tsa_tb_url_flg" value="2"<?php echo $chk_2;?>/>&nbsp;しない</label>
284
  </td>
285
  </tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
286
  </table>
287
  <input type="hidden" name="action" value="update" /> <input
288
  type="hidden" name="page_options"
289
- value="tsa_on_flg,tsa_japanese_string_min_count,tsa_back_second,tsa_caution_message,tsa_error_message,tsa_ng_keywords,tsa_ng_key_error_message,tsa_must_keywords,tsa_must_key_error_message,tsa_tb_on_flg,tsa_tb_url_flg" />
290
  <p class="submit">
291
  <input type="submit" class="button-primary"
292
  value="<?php _e('Save Changes') ?>" />
@@ -307,18 +400,23 @@ class ThrowsSpamAway {
307
  if ($tsa_tb_on_flg == "2" || ($tb['comment_type'] != 'trackback' && $tb['comment_type'] != 'pingback')) return $tb;
308
 
309
  // SPAMかどうかフラグ
310
- $tb_val['is_spam'] = false;
311
 
312
  // コメント判定
313
  $comment = $tb['comment_content'];
314
 
 
 
 
 
 
315
  // 検査します!
316
  if (!$newThrowsSpamAway->validation($comment)) {
317
- $tb_val['is_spam'] = true;
318
- }
319
  // URL検索する場合、URL包含検査 (このブログのURLを含んでない場合エラー
320
- if ($tsa_tb_url_flg == "1" && stripos($comment, $siteurl) == false) {
321
- $tb_val['is_spam'] = true; // スパム扱い
322
  }
323
  // トラックバックスパムがなければ返却・あったら捨てちゃう
324
  if (!$tb_val['is_spam']) {
@@ -329,4 +427,3 @@ class ThrowsSpamAway {
329
  }
330
  }
331
  }
332
- ?>
1
  <?php
2
  /*
3
  Plugin Name: Throws SPAM Away
4
+ Plugin URI: http://gti.jp/tsa/
5
+ Description: コメント内に日本語の記述が存在しない場合はあたかも受け付けたように振る舞いながらも捨ててしまうプラグイン
6
  Author: 株式会社ジーティーアイ さとう たけし
7
+ Version: 2.0
8
  Author URI: http://gti.jp/
9
  */
10
 
19
  $default_ng_key_error_msg = 'NGキーワードが含まれているため投稿できません。';
20
  // 必須キーワードが含まれないエラー文言(初期設定)
21
  $default_must_key_error_msg = "必須キーワードが含まれていないため投稿できません。";
22
+ // ブロックIPアドレスからの投稿の場合に表示されるエラー文言(初期設定)
23
+ $default_block_ip_address_error_msg = "";
24
  /** オプションキー */
25
  // 日本語が存在しない時エラーとするかフラグ [tsa_on_flg] 1:する 2:しない
26
  // 日本語文字列含有数 (入力値以下ならエラー) [tsa_japanese_string_min_count] 数値型
39
  // この設定をトラックバック記事にも採用するか [tsa_tb_on_flg] 1:する 2:しない
40
  // トラックバック記事にも採用する場合、ついでにこちらのURLが含まれているか判断するか
41
  // [tsa_tb_url_flg] 1:する 2:しない
42
+ // WordPressのcommentsテーブルで「spam」判定されたことがあるIPアドレスからの投稿を無視するか
43
+ // [tsa_ip_block_from_spam_chk_flg] 1:する その他:しない
44
+ // ブロックしたいIPアドレスを任意で入力(半角カンマ区切りで複数設定できます。)
45
+ // [tsa_block_ip_addresses] 文字列型
46
+ // ブロック対象IPアドレスからの投稿時に表示される文言(元の記事に戻ってくる時間の間のみ表示)
47
+ // [tsa_block_ip_address_error_message] 文字列型
48
 
49
  /** プロセス */
50
  $newThrowsSpamAway = new ThrowsSpamAway;
63
  */
64
  class ThrowsSpamAway {
65
  // version
66
+ var $version = '2.0';
67
 
68
  public function __construct() {
69
  add_action( 'admin_menu', array( $this, 'admin_menu' ) );
74
  // 注意文言表示
75
  $caution_msg = get_option('tsa_caution_message');
76
  echo '<div id="throwsSpamAway">';
77
+ echo ($caution_msg != NULL? $caution_msg : $default_caution_msg);
78
  echo '</div>';
79
  return TRUE;
80
  }
92
  }
93
 
94
  $comment = $_POST["comment"];
95
+ // IP系の検査
96
+ $ip = $_SERVER['REMOTE_ADDR'];
97
+ if (!$newThrowsSpamAway->ip_check($ip)) {
98
+ // アウト!
99
+ } else
100
+ // コメント検査
101
  if ($newThrowsSpamAway->validation($comment)) {
102
  return $id;
103
  }
104
+ $error_msg = "";
105
+ switch ($error_type) {
106
+ case "must_word" :
107
+ $error_msg = (get_option('tsa_must_key_error_message') != NULL ?
108
+ get_option('tsa_must_key_error_message') : $default_must_key_error_msg);
109
+ break;
110
+ case "ng_word" :
111
+ $error_msg = (get_option('tsa_ng_key_error_message') != NULL ?
112
+ get_option('tsa_ng_key_error_message') : $default_ng_key_error_msg);
113
+ break;
114
+ case "block_ip" :
115
+ $error_msg = (get_option('tsa_block_ip_address_error_message') != NULL ?
116
+ get_option('tsa_block_ip_address_error_message') : $default_block_ip_address_error_msg);
117
+ default :
118
+ $error_msg = (get_option('tsa_error_message') != NULL ?
119
+ get_option('tsa_error_message') : $default_error_msg);
120
+ }
121
  // 元画面へ戻るタイム計算
122
+ $back_time = get_option('tsa_back_second')!=NULL?(((int)get_option('tsa_back_second')) * 1000):0;
123
  // タイム値が0なら元画面へそのままリダイレクト
124
  if ($back_time == 0) {
125
  header("Location:".$_SERVER['HTTP_REFERER']);
126
  die;
127
  } else {
128
+ wp_die( __(($error_msg != NULL? $error_msg : $default_error_msg)."<script type=\"text/javascript\">window.setTimeout(location.href='".$_SERVER['HTTP_REFERER']."', ".$back_time.");</script>", 'throws-spam-away'));
129
+ }
130
+ }
131
+
132
+ /**
133
+ * IPアドレスのチェックメソッド
134
+ * @param string $target_ip
135
+ */
136
+ function ip_check($target_ip) {
137
+ global $wpdb; // WordPress DBアクセス
138
+ global $newThrowsSpamAway;
139
+ global $error_type;
140
+ // IP制御 WordPressのスパムチェックにてスパム扱いしている投稿のIPをブロックするか
141
+ $ip_block_from_spam_chk_flg = get_option('tsa_ip_block_from_spam_chk_flg');
142
+
143
+ if ($ip_block_from_spam_chk_flg === "1") {
144
+ // wp_commentsの comment_approved カラムが「spam」のIP_ADDRESSからの投稿は無視する
145
+ $results = $wpdb->get_results("SELECT DISTINCT comment_author_IP FROM $wpdb->comments WHERE comment_approved = 'spam' ORDER BY comment_author_IP ASC ");
146
+ foreach ($results as $item) {
147
+ if (trim($item->comment_author_IP) == trim($target_ip)) {
148
+ // ブロックしたいIP
149
+ $error_type = "block_ip";
150
+ return FALSE;
151
+ }
152
+ }
153
+ }
154
+ // IP制御 任意のIPアドレスをあればブロックする
155
+ $block_ip_addresses = get_option('tsa_block_ip_addresses');
156
+ if ($block_ip_addresses != NULL && $block_ip_addresses != "") {
157
+ $ip_list = mb_split(",", $block_ip_addresses);
158
+ foreach ($ip_list as $ip) {
159
+ if (trim($ip) == trim($target_ip)) {
160
+ // ブロックしたいIP
161
+ $error_type = "block_ip";
162
+ return FALSE;
163
+ } else {
164
+ // セーフIP
165
+ }
166
+ }
167
  }
168
+ return TRUE;
169
  }
170
 
171
  /**
191
  if (preg_match('/[ァ-ヶー]+/u', $it)){ $count_flg += 1; }
192
  if (preg_match('/[ぁ-ん]+/u', $it)){ $count_flg += 1; }
193
  }
194
+ $flg = ((get_option('tsa_japanese_string_min_count')!= NULL?
195
  intval(get_option('tsa_japanese_string_min_count')):0) < $count_flg);
196
  if ($flg == FALSE) {
197
  return FALSE;
200
  // 日本語文字列チェック抜けたらキーワードチェックを行う
201
  // キーワード文字列群
202
  $ng_keywords = get_option('tsa_ng_keywords');
203
+ if ($ng_keywords != NULL && $ng_keywords != "") {
204
  $keyword_list = mb_split(",", $ng_keywords);
205
  foreach ($keyword_list as $key) {
206
  if (preg_match('/'.trim($key)."/u", $comment)) {
212
  // キーワードチェック(ブラックリスト)を抜けたら必須キーワードチェックを行う
213
  // キーワード文字列群 ※ブラックリストと重複するものはブラックリストのほうが優先です。
214
  $must_keywords = get_option('tsa_must_keywords');
215
+ if ($must_keywords != NULL && $must_keywords != "") {
216
  $keyword_list = mb_split(",", $must_keywords);
217
  foreach ($keyword_list as $key) {
218
  if (preg_match('/'.trim($key)."/u", $comment)) {
248
  * Admin options page
249
  */
250
  function options_page() {
251
+ global $wpdb; // WordPress DBアクセス
252
  global $default_caution_msg;
253
  global $default_error_msg;
254
  global $default_ng_key_error_msg;
270
  $chk_1 = " checked=\"checked\"";
271
  }
272
  ?>
273
+ <label><input type="radio" name="tsa_on_flg" value="1"<?php echo $chk_1;?>/>&nbsp;する</label>&nbsp;
274
  <label><input type="radio" name="tsa_on_flg" value="2"<?php echo $chk_2;?>/>&nbsp;しない</label>
275
  </td>
276
  </tr>
326
  $chk_1 = " checked=\"checked\"";
327
  }
328
  ?>
329
+ <label><input type="radio" name="tsa_tb_on_flg" value="1"<?php echo $chk_1;?>/>&nbsp;する</label>&nbsp;
330
  <label><input type="radio" name="tsa_tb_on_flg" value="2"<?php echo $chk_2;?>/>&nbsp;しない</label>
331
  </td>
332
  </tr>
341
  $chk_1 = " checked=\"checked\"";
342
  }
343
  ?>
344
+ <label><input type="radio" name="tsa_tb_url_flg" value="1"<?php echo $chk_1;?>/>&nbsp;する</label>&nbsp;
345
  <label><input type="radio" name="tsa_tb_url_flg" value="2"<?php echo $chk_2;?>/>&nbsp;しない</label>
346
  </td>
347
  </tr>
348
+ <tr valign="top">
349
+ <th scope="row">WordPressのコメントで「スパム」にしたIPからの投稿にも採用する</th>
350
+ <td><?php
351
+ $chk = "";
352
+ if (get_option('tsa_ip_block_from_spam_chk_flg') == "1") {
353
+ $chk = "checked=\"checked\"";
354
+ } else {
355
+ $chk = "";
356
+ }
357
+ ?>
358
+ <label><input type="checkbox" name="tsa_ip_block_from_spam_chk_flg" value="1"<?php echo $chk; ?>/>&nbsp;スパム投稿設定したIPアドレスからの投稿も無視する</label><br />
359
+ <?php
360
+ // wp_commentsの comment_approved カラムが「spam」のIP_ADDRESSからの投稿は無視する
361
+ $results = $wpdb->get_results("SELECT DISTINCT comment_author_IP FROM $wpdb->comments WHERE comment_approved = 'spam' ORDER BY comment_author_IP ASC ");
362
+ ?>現在「spam」フラグが付いているIPアドレス:<?php
363
+ foreach ($results as $item) {
364
+ // ブロックしたいIP
365
+ ?><b><?php echo $item->comment_author_IP; ?></b>&nbsp;<?php
366
+ }
367
+ ?>
368
+ </td>
369
+ </tr>
370
+ <tr valign="top">
371
+ <th scope="row">任意のIPアドレスからの投稿も無視したい場合、対象となるIPアドレスを記述してください。<br />カンマ区切りで複数設定できます。(半角数字とドットのみ)</th>
372
+ <td><input type="text" name="tsa_block_ip_addresses" size="100"
373
+ value="<?php echo get_option('tsa_block_ip_addresses');?>" /></td>
374
+ </tr>
375
+ <tr valign="top">
376
+ <th scope="row">ブロック対象のIPアドレスからの投稿時に表示される文言<br />(元の記事に戻ってくる時間の間のみ表示)</th>
377
+ <td><input type="text" name="tsa_block_ip_address_error_msg" size="100"
378
+ value="<?php echo get_option('tsa_block_ip_address_error_message');?>" /><br />(初期設定:<?php echo $default_block_ip_address_error_msg; ?>)</td>
379
  </table>
380
  <input type="hidden" name="action" value="update" /> <input
381
  type="hidden" name="page_options"
382
+ value="tsa_on_flg,tsa_japanese_string_min_count,tsa_back_second,tsa_caution_message,tsa_error_message,tsa_ng_keywords,tsa_ng_key_error_message,tsa_must_keywords,tsa_must_key_error_message,tsa_tb_on_flg,tsa_tb_url_flg,tsa_block_ip_addresses,tsa_ip_block_from_spam_chk_flg,tsa_block_ip_address_error_msg" />
383
  <p class="submit">
384
  <input type="submit" class="button-primary"
385
  value="<?php _e('Save Changes') ?>" />
400
  if ($tsa_tb_on_flg == "2" || ($tb['comment_type'] != 'trackback' && $tb['comment_type'] != 'pingback')) return $tb;
401
 
402
  // SPAMかどうかフラグ
403
+ $tb_val['is_spam'] = FALSE;
404
 
405
  // コメント判定
406
  $comment = $tb['comment_content'];
407
 
408
+ // IP系の検査
409
+ $ip = $_SERVER['REMOTE_ADDR'];
410
+ if (!$newThrowsSpamAway->ip_check($ip)) {
411
+ $tb_val['is_spam'] = TRUE;
412
+ } else
413
  // 検査します!
414
  if (!$newThrowsSpamAway->validation($comment)) {
415
+ $tb_val['is_spam'] = TRUE;
416
+ } else
417
  // URL検索する場合、URL包含検査 (このブログのURLを含んでない場合エラー
418
+ if ($tsa_tb_url_flg == "1" && stripos($comment, $siteurl) == FALSE) {
419
+ $tb_val['is_spam'] = TRUE; // スパム扱い
420
  }
421
  // トラックバックスパムがなければ返却・あったら捨てちゃう
422
  if (!$tb_val['is_spam']) {
427
  }
428
  }
429
  }
 
uninstall.php CHANGED
@@ -17,4 +17,8 @@ delete_option('tsa_must_keywords');
17
  delete_option('tsa_must_key_error_message');
18
  delete_option('tsa_tb_on_flg');
19
  delete_option('tsa_tb_url_flg');
 
 
 
 
20
  ?>
17
  delete_option('tsa_must_key_error_message');
18
  delete_option('tsa_tb_on_flg');
19
  delete_option('tsa_tb_url_flg');
20
+ // ver.2.0
21
+ delete_option('tsa_ip_block_from_spam_chk_flg');
22
+ delete_option('tsa_block_ip_addresses');
23
+ delete_option('tsa_block_ip_address_error_message');
24
  ?>