| なんとか解決したみないなので修正箇所乗せてみます。 でもPerlの知識が乏しいもので、間違っている可能性があります。
参考にさせてもらったのとほとんど同じなのですが、 まずip.logという空のファイルを作ってアップロード。 412行目位にある、 $addr = $ENV{'REMOTE_ADDR'}; の下に $ipflag=0; # IPがすでにあるかのフラグ open(IPI,"ip.log"); while (<IPI>){ if($_ eq $ad){$ipflag=1; last;}#IPがすでにある場合フラグを立てて終わり } close(IPI); if($ipflag){if($SSI){&html_($ARGV[1],0);}else{&gif_;}}#フラグがたっている場合 else{#そうでない場合 if((-M "$tlog") < 1){#更新されてから1日以内ならIP追加 open(IPO,">>ip.log"); print IPO $ad; close(IPO); }else{#更新されて1日以上ならログをフォーマットして追加 open(IPO,">ip.log"); print IPO $ad; close(IPO); } }
を追加。それからset.cgiの42行目あたりにある、簡易投票防止を2番にします。 これで完了。 同じIPからは1日1票しか入れられなくなりますが、 何故か項目の追加はできてしまいます。でも連続で投票して数を増やすことを 防止できるので、さほど気にしなくてもいいのではという結論になりました。 もし間違いなどがあった場合、お手数ではございますが指摘していただけると 幸いです。 |