#!/usr/bin/perl #setting $url = 'http://www.9ravens.com/addlot.cgi'; $home = 'http://www.9ravens.com/bbs.cgi?mode=pile'; $title = 'add a line to the lot!'; $body = ''; $logfile = 'lot.dat'; #main if ($ENV{'REQUEST_METHOD'} ne "POST") { $formdata = $ENV{'QUERY_STRING'}; } elsif ( $ENV{'HTTP_REFERER'} !~ /^$url/ ) { &error(bad_referer); } else { read(STDIN, $formdata, $ENV{'CONTENT_LENGTH'}); } @pairs = split(/&/,$formdata); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s//>/g; $value =~ s/\n//g; $value =~ s/\,//g; $FORM{$name} = $value; } if ($FORM{'action'} eq "true") { ®ist; &html; } else { &html; } #subroutine sub html { print "Content-type: text/html\n\n"; print "
一行コメント追加
積み上げ表示モードで表示される「未読リロード」ボタンを押したとき、新着記事が無い場合は登録したコメントがランダムに表示されます。
\n"; print "\n"; print "$title\n"; print "\n"; print "$body\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
add a line!
\n"; print "\n"; exit; } sub regist { if ($FORM{'comment'} eq "") { &error(bad_comment); } if ($FORM{'comment'} eq "") { &error(bad_comment); } if ($FORM{'comment'} eq "") { &error(bad_comment); } # #form check #2006 07 Dec #2007 28 Jan if ( $FORM{'comment'} =~ /@/ ){ exit(0); } if ( $FORM{'comment'} =~ /%40/ ){exit(0); } if ( $FORM{'comment'} =~ /http/ ){exit(0); } if ( $FORM{'comment'} =~ /\[url/i ){exit(0); } if ( $FORM{'comment'} =~ /\>$logfile")) { &error(bad_file); } $value = "$FORM{'comment'}\n"; print NOTE $value; close(NOTE); print "Location: $home" . '' . "\n\n"; } sub error { $error = $_[0]; if ($error eq "bad_file") { $msg = 'ファイル操作に失敗しました。'; } elsif ($error eq "bad_referer") { $msg = '不適切なリファラからの投稿です。';} elsif ($error eq "bad_comment") { $msg = 'コメントが記入されていません。'; } else { $msg = 'error'; } print "Content-type: text/html\n\n"; print "" . $title . "\n"; print "$body\n"; print "error\n"; print "" . $msg . "\n"; print '
掲示板へ戻る
'; print "\n"; exit; }