• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:掲示板cgi、同一ホストからの一定時間投稿を制限する機能をつけるには?)

掲示板cgi、同一ホストからの一定時間投稿を制限する機能をつけるには?

このQ&Aのポイント
  • 掲示板cgiで苦戦しております。他の掲示板cgiを参考にしながらやってみたのですが、『同一ホストからの一定時間投稿を制限する』機能がつけられません。
  • 現在使用中の掲示板には、掲示板荒らし対策として『PROXYからのアクセスを制限』や『特定ホストからのアクセスを制限』などがあります。追加で『同一ホストからの一定時間の投稿を制限する』機能を加えたいのですが、実装方法が分からず困っています。
  • 他の掲示板のソースコードを見て、『連続投稿はできません。しばらく時間を置いてからお願い致します』というソースがあるようですが、これを組み込むことで解決できるのか不明です。どなたか教えていただけますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.1

著作権があるので、そのままここでプログラムを提示することは出来ませんが 改造の方向を提示することは可能です。 しかし、元のプログラムがどこで何をやっているかを理解できていていないと難しいかと思います。 じっくり元のプログラムを読み解いてから行ってください。 1.変更場所 :二重投稿のチェック のところ 2.最近の5個のメッセージしかチェックしてないが、制限時間によっては、forループのiの最大値を増やす。 3.メッセージ部分を比較しているif文のあとに 4.過去メッセージの日付と時刻は、&で区切られた文字列になっているようなので、 これを、Time::Localモジュールまたは関数を自作してUTC(time関数と同じ形式)に変換する。 5.投稿者のhostの取得(二重投稿のチェックより後ろで変数に入れているので手前に持ってくる) $host = $ENV{'REMOTE_HOST'}; 6.ホスト名と投稿時刻を比較するif文を入れる $datatime に4のデータ、$period に制限時間(秒に換算)として $period が0の時は制限無しで if( ($disphost eq $host) && $period && ( (time - $datatime)< $period ) ){ ### 二重投稿のチェックのif文内でやってるのと同じことをする。 }

関連するQ&A