**NGワード機能 [#yefe049c]
|RIGHT:70|LEFT:410|c
|~バージョン|1.4.3|
|~投稿者|[[修羅]]|
|~状態|完了|
|~投稿日|&new{2004-06-10 (THU) 22:23:11};|
***メッセージ [#w37ca5f3]
ページを作るときや編集・投稿すべて含めて
予め設定しておいた単語をNGワードとして
エラーを出すようにはできないでしょうか?
pukiwikiとしては編集をすべて一般開放しながらも
荒らしに対する予防線は張っておきたいので。。

***コメント [#m3ee1526]
-[[reimy]] &new{2004-06-10 (THU) 22:38:47};
~rules.ini.phpのユーザー定義ルールもしくはdefault.ini.phpのユーザー定義ルールで可能です。
~rules.ini.phpのユーザー定義の場合は、書き込まれたNGワードを''強制的にソースレベルで別の単語に置換''します。下記の例では、「禁止ワード」と書かれた場合に、IPアドレスに書き換えます。
 // ユーザ定義ルール(直接ソースを置換)
 $str_rules = array(
 	'禁止ワード' => $HTTP_SERVER_VARS["REMOTE_ADDR"],
 );
~default.ini.phpのユーザー定義の場合は、書き込まれたNGワードについて、''ソースは書き換えません''が、別の単語として表示します。下記の例では、「禁止ワード」と書かれた場合に、[NG]と表示します。
 // ユーザ定義ルール(コンバート時に置換)
 $line_rules = array(
       '禁止ワード' => '<span class="errormes">[NG]</span>',
 );
-[[修羅]] &new{2004-06-10 (THU) 22:52:25};
~reimyさん非常に分かりやすい実践レベルでの説明ありがとうございます。助かりました。
//- 置換ではなくて、編集を受け付けない方法は無いでしょうか。機械的なアクセスに対してIP記録等の置換処理をしてもあまり意味は無いので・・・ -- [[jun]] &new{2006-07-21 (金) 10:55:52};
//-[[こちら>続・質問箱/146]]を参考に、file.phpのpage_write内でstrstrでキーワード処理することにしました。
- 横からすいません。commentプラグインにはNGwordという機能があり、こちらは「禁止ワードにひっかかると投稿そのものが出来ない」という機能になっていますが、本体にはそのような機能はないのでしょうか?スパマーが編集ボタンを押すことは想定していないのでしょうか。 -- [[デグ]] &new{2007-01-28 (日) 19:52:49};

 // Write, add, or insert new comment
 function plugin_edit_write()
 {
  global $vars, $trackback;
  global $_title_collided, $_msg_collided_auto, $_msg_collided, $_title_deleted;
  global $notimeupdate, $_msg_invalidpass, $do_update_diff_table;
 
  $page   = isset($vars['page'])   ? $vars['page']   : '';
  $add    = isset($vars['add'])    ? $vars['add']    : '';
  $digest = isset($vars['digest']) ? $vars['digest'] : '';
 //↓このへんをcommentプラグインから拝借して追加
  global $comment_ng_word;
 
  foreach($comment_ng_word as $word)
  {
   if(preg_match($word,$vars['msg']))
   {
    // NGワードに一致した場合は書き込めない
    return array('msg'=>'書き込めません', 'body'=>'禁止ワードが含まれていたため書き込まれませんでした。', 'collided'=>TRUE);
   }
  }
- もう既に付いてる機能をまた追加しようとしていたらこっ恥ずかしい限りですが、plugin/edit.inc.phpのwrite関数をちょっといじって、こんな感じでいいのでしょうか。>識者の方 -- [[デグ]] &new{2007-01-28 (日) 20:05:50};
- [[dev:BugTrack2/212]] --  &new{2007-03-06 (火) 03:03:50};

#comment



トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.045 sec.

OSDN