掲示板の二重投稿禁止
[上に]
[前に]
[次に]
ト〜ルシエ
2000/02/08(火) 23:08:38
フリーで配布されている Perlスクリプトに、
改造として二重投稿を禁止させようと思っています。
二重投稿に関しては、他のスクリプトを参考にして
やってみたのですが上手くいきません。
sub regist {
if ( $FORM{'action'} eq 'regist' ) {
### ここから追加
foreach $line ( @RUSU ) {
($date,$name,$comment) = split(/,/,$line);
if ( $name eq $FORM{'name'} && $comment eq $FORM{'comment'} ) {
&error("二重投稿");
last;
}
}
### ここまで追加
if ( $FORM{'comment'} ne "" ) {
if ( @RUSU >= $max ) { pop(@RUSU); }
$value = "$chatdate\,$FORM{'name'}\,$FORM{'comment'}\n";
unshift(@RUSU,$value);
if ( !open(DATA,">$logfile") ) { &error("ログファイル"); }
print DATA @RUSU;
close(DATA);
}
}
}
と追加してみましたが、二重書き込み出来ます。
Perl初心者で改造しながら勉強してるのですが、
ご教授頂けると幸いです。
他の箇所のソースも必要でしょうか?
何か不備があれば、質問の仕方も合わせてご指摘下さい。
andi
2000/02/08(火) 23:41:43
$commentのケツに\n(改行コード)が入っているかもしれません。
foreach $line ( @RUSU ) {
chomp($line);
($date,$name,$comment) = split(/,/,$line);
if ( $name eq $FORM{'name'} && $comment eq $FORM{'comment'} ) {
&error("二重投稿");
last;
}
}
を一度試してみて下さい。
ト〜ルシエ
2000/02/09(水) 01:34:38
[[解決]]
> chomp($line);
これでバッチリでした、ふむ、なるほど。
andiさん、ありがとうございました。
[上に]
[前に]
[次に]