200X/00/15
いやぁ〜今夜はめちゃくちゃ遊んだなぁ(*^^*ゞ
こんなことばっかりしてても、仕事もちゃんとしている私は偉いか??
ある程度出来あがったので、色々整理して、JavaScriptを埋め込んで、
我ながら満足な掲示板 に仕上がった(*^。^*)
著作権表示まで書いちゃって・・・自我自賛か??笑ってしますなぁ(⌒^⌒)bうふっ
ログの件数を制御する部分
foreach( 15..$#logs ){
pop @logs;
}
ログの表示を変更
foreach $kakiko ( @logs ){
print $kakiko;
JavaScriptの部分
あと色々と手を入れる・・・
まぁなんて長い??プログラムになっちゃったんでしょう(*^^*ゞ(まだ?短いか)
《これを表示させるとこんな感じ→ 「dbbbs8.html」

デコード部分の改行表示文字がおかしいです
直すの面倒だったからそのまま表示。
HTMLでHTML部分を表示さるのに、環境変数使って<や>を書きなおすようにして吐き出したプログラム なので、改行コードはおかしくなるんです??ってなに言ってるんだって??(-_☆)キラリ

#!/usr/local/bin/perl

#┌─────────────────────────────────
#│ dbbbs v1.00 (2001/11/1)
#│ Copyright(C) tensyuと10syu 2001 (著作権表示だったりして(*^^*ゞ)
#│
#│ [注意事項]
#|@ まぁ使う人はいないでしょうが、使わない方が貴方の為です。
#|  (万が一使うなら)↓
#│A どのような損害に対しても作者は一切の責任を負いません。
#│B 質問や苦情などは一切受け付けません(*^^*ゞ。
#│C 私が勝手に遊んでるだけですから、し〜らないっと(⌒^⌒)bうふっ
#└─────────────────────────────────

require './jcode.pl';

print "Content-type: text/html\n\n";
if ($ENV{'REQUEST_METHOD'} ne "POST") {
$ip = $ENV{'REMOTE_ADDR'};
$reurl = $ENV{'HTTP_REFERER'};
$host = $ENV{'REMOTE_HOST'};
$bura = $ENV{'HTTP_USER_AGENT'};

( $byou, $hun, $ji, $hi, $tuki, $toshi, $you ) = localtime( time );
$hyouji = sprintf( "%04d年%02d月%02d日",$toshi + 1900, $tuki + 1, $hi );
$youbi = sprintf( "(%s)", ( "日", "月", "火", "水", "木", "金", "土")[$you] );
$jikan = sprintf( "%02d時%02d分%02d秒", $ji, $hun, $byou );


$suuji = "./suuji.txt";

foreach( 1..5) {
if( mkdir($lock, 0755 ) ){
last;
}
else{
sleep( 1 );
}
}
open(SUUJI, "+<$suuji");
@suuji = <SUUJI>;
$kau = $suuji[0] +1;
$suujidata = $kau."\t".$hyouji."\t".$youbi."\t".$jikan."\t".$ip."\t".$reurl."\t".$host."\t".$bura."\n";
unshift( @suuji, $suujidata );

foreach( 300..$#suuji ){
pop @suuji;
}

seek( SUUJI, 0, 0 );
print SUUJI @suuji;
truncate( SUUJI, tell( SUUJI ));
close( SUUJI );

rmdir( $lock );
}

if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $naka, $ENV{"CONTENT_LENGTH"});

( $byou, $hun, $ji, $hi, $tuki, $toshi, $you ) = localtime( time );
$hyouji = sprintf( "%04d年%02d月%02d日",$toshi + 1900, $tuki + 1, $hi );
$youbi = sprintf( "(%s)", ( "日", "月", "火", "水", "木", "金", "土")[$you] );
$jikan = sprintf( "%02d時%02d分%02d秒", $ji, $hun, $byou );

$ip = $ENV{'REMOTE_ADDR'};
$reurl = $ENV{'HTTP_REFERER'};
$host = $ENV{'REMOTE_HOST'};
$bura = $ENV{'HTTP_USER_AGENT'};

@nakami = split('&', $naka);

foreach(@nakami) {
($hidari, $migi) = split("=");
$migi =~ tr/+/ /;
$migi =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg;

$migi =~ s/\r?\n/
/g;
$migi =~ s/
/
/gi;
&jcode'convert( *migi, 'sjis' );
$kaku{$hidari} = $migi;
}

$name = $kaku{'name'};
$memo = $kaku{'memo'};
$address = $kaku{'address'};
$url = $kaku{'url'};
$color = $kaku{'color'};
$bg = $kaku{'bg'};
$dai = $kaku{'dai'};

$logfile = "./logfile.txt";
$kanrifile = "./kanrifile.txt";

open( NIJYUU, "$kanrifile");
$nijyuu = <NIJYUU>;
( $a, $b, $memo1, $d, $e, $f, $g, $h, $i, $j ) = split( /\t/, $nijyuu );
close( NIJYUU );

if($name eq "" or $memo eq "") {
$error="エラーで〜す!nameとmemoは必ず記入してくださいd(^-^)ネ!。";
}
elsif($memo eq $memo1){
$error="エラーで〜す!2重投稿になっちゃいました(*^^*ゞ。";
}
else{
foreach( 1..5) {
if( mkdir($lock, 0755 ) ){
last;
}
else{
sleep( 1 );
}
}

open(LOGFILE, "+<$logfile");
@logs = <LOGFILE>;
$ban = $logs[0] +1;
$memo =~ s/\r?\n/
/g;
$logdata = $ban."<center><table width='600' border='2'><tr><td bgcolor='#ffffff'> <b>$dai</b> <font size='2'>name: <b><a href='mailto:$address'>$name</a> </b>\[ $hyouji$youbi$jikan ] <a href='$url'>[HOME]</a></font></td></tr><td bgcolor='$bg'><font color='$color'>$memo</font></td></tr></table></center>"."\n";
unshift( @logs, $logdata );

foreach( 15..$#logs ){
pop @logs;
}

seek( LOGFILE, 0, 0 );
print LOGFILE @logs;
truncate( LOGFILE, tell( LOGFILE ));
close( LOGFILE );

open(KANRIFILE, "+<$kanrifile");
@kanri = <KANRIFILE>;
$nan = $kanri[0] +1;
$kanridata = $nan."\t".$name."\t".$memo."\t".$hyouji."\t".$youbi."\t".$jikan."\t".$ip."\t".$reurl."\t".$host."\t".$bura."\n";
unshift( @kanri, $kanridata );

foreach( 100..$#kanri ){
pop @kanri;
}

seek( KANRIFILE, 0, 0 );
print KANRIFILE @kanri;
truncate( KANRIFILE, tell( KANRIFILE ));
close( KANRIFILE );

rmdir( $lock );
}
}

#頭の部分表示
print <<MAMA;
<META HTTP-EQUIV="Content-type"CONTENT="text/html"CHARSET="Shift_JIS">
<HTML>
<HEAD>
<TITLE>お気軽掲示板</TITLE>
<STYLE TYPE="text/css">
<!--
A:hover { color: red; }
a {text-decoration:none}
-->
</STYLE>
<SCRIPT LANGUAGE="JavaScript">
function iro1(){
document.iroform.color.value="red";
}
function iro2(){
document.iroform.color.value="blue";
}
function iro3(){
document.iroform.color.value="khaki";
}
function iro4(){
document.iroform.color.value="yellow";
}
function iro5(){
document.iroform.color.value="purple";
}
function iro6(){
document.iroform.color.value="green";
}
function iro7(){
document.iroform.color.value="brown";
}
function iro8(){
document.iroform.color.value="violet";
}
function iro9(){
document.iroform.color.value="pink";
}
function iro10(){
document.iroform.color.value="gray";
}
function iro11(){
document.iroform.color.value="snow";
}
function iro12(){
document.iroform.color.value="orange";
}
function iro13(){
document.iroform.color.value="aqua";
}
function iro14(){
document.iroform.color.value="brass";
}
function iro15(){
document.iroform.color.value="coral";
}
function iro16(){
document.iroform.color.value="tan";
}
function iro17(){
document.iroform.color.value="teal";
}
function iro18(){
document.iroform.color.value="gold";
}
function iro19(){
document.iroform.bg.value="black";
}
function iro20(){
document.iroform.bg.value="white";
}
function iro21(){
document.iroform.bg.value="red";
}
function iro22(){
document.iroform.bg.value="yellow";
}
function iro23(){
document.iroform.bg.value="pink";
}
function iro24(){
document.iroform.bg.value="blue";
}
</SCRIPT>

</HEAD>
MAMA

$suuji = "./suuji.txt";
open( KAUNTA, "$suuji");
$kaunta = <KAUNTA>;
( $aa, $bb, $dd, $ee, $ff, $gg, $hh, $ii ) = split( /\t/, $kaunta );
close( KAUNTA );
print "<font color='#ffffff' size='2'><b>$aa</b></font>
";

print <<MAMA;
<BODY bgcolor="#003366" vlink="#000000" link="#000000">
<center><font color="white" size="+1"><b>お気軽掲示板</b></font></center>
<FORM METHOD="POST" ACTION=\"****.cgi\" name=\"iroform"\ \n>
<center><table border="0" align="center" width="400">
<tr><td align="center">
<font color="white"><b>お名前</b></font><font size="2" color="white">(省略不可)</font><INPUT NAME="name" SIZE="45"></td></tr>
<tr><td align="center">
<font color="white"><b>題名.......</b></font><font size="2" color="white">(省略可)</font><INPUT NAME="dai" SIZE="45" value="no title"></td></tr>
<tr><td align="center">
<font color="white"><b>e-mail...</b></font><font size="2"color="white">(省略可)</font><INPUT NAME="address" SIZE="45"></td></tr>
<tr><td align="center">
<font color="white"><b>URL......</b></font><font size="2"color="white">(省略可)</font><INPUT NAME="url" SIZE="45" VALUE="http://"></td></tr>
</tr></table></center>

<center><table border="0" width="400">
<tr><td colspan="6" align="center"><font size="2"color="white">文字の色を選べます(下の色をクリックして下さい)</font><input name="color" size="13" value="black"></td></tr>
</table></center>

<center><table border="0" width="400"><tr>
<td width="45" bgcolor="red"><INPUT TYPE="radio" name="box" onClick="iro1();"><font color="black">red</font></td>
<td width="45" bgcolor="blue"><INPUT TYPE="radio" name="box" onClick="iro2();"><font color="black">blue</font></td>
<td width="45" bgcolor="khaki"><INPUT TYPE="radio" name="box"onClick="iro3();"><font color="black">khaki</font></td>
<td width="45" bgcolor="yellow"><INPUT TYPE="radio" name="box" onClick="iro4();"><font color="black">yellow</font></td>
<td width="45" bgcolor="purple"><INPUT TYPE="radio" name="box" onClick="iro5();"><font color="black">purple</font></td>
<td width="45" bgcolor="green"><INPUT TYPE="radio" name="box"onClick="iro6();"><font color="black">green</font></td>
</tr>
<td width="45" bgcolor="brown"><INPUT TYPE="radio" name="box" onClick="iro7();"><font color="black">brown</font></td>
<td width="45" bgcolor="violet"><INPUT TYPE="radio" name="box" onClick="iro8();"><font color="black">violet</font></td>
<td width="45" bgcolor="pink"><INPUT TYPE="radio" name="box" onClick="iro9();"><font color="black">pink</font></td>
<td width="45" bgcolor="gray"><INPUT TYPE="radio" name="box" onClick="iro10();"><font color="black">gray</font></td>
<td width="45" bgcolor="snow"><INPUT TYPE="radio" name="box" onClick="iro11();"><font color="black">snow</font></td>
<td width="45" bgcolor="orange"><INPUT TYPE="radio" name="box" onClick="iro12();"><font color="black">orange</font></td></tr>
</tr>
<td width="45" bgcolor="aqua"><INPUT TYPE="radio" name="box" onClick="iro13();"><font color="black">aqua</font></td>
<td width="45" bgcolor="brass"><INPUT TYPE="radio" name="box" onClick="iro14();"><font color="black">brass</font></td>
<td width="45" bgcolor="coral"><INPUT TYPE="radio" name="box" onClick="iro15();"><font color="black">coral</font></td>
<td width="45" bgcolor="tan"><INPUT TYPE="radio" name="box" onClick="iro16();"><font color="black">tan</font></td>
<td width="45" bgcolor="teal"><INPUT TYPE="radio" name="box" onClick="iro17();"><font color="black">teal</font></td>
<td width="45" bgcolor="gold"><INPUT TYPE="radio" name="box" onClick="iro18();"><font color="black">gold</font></td></tr>
</table></center>

<center><table border="0" width="400">
<tr><td colspan="6" align="center"><font size="2"color="white">バックの色も選べます(下の色をクリックして下さい)</font><input name="bg" size="13" value="white"></td></tr>
</table></center>

<center><table border="0" width="400"><tr>
<td width="45" bgcolor="black"><INPUT TYPE="radio" name="box2" onClick="iro19();"><font color="white">black</font></td>
<td width="45" bgcolor="white"><INPUT TYPE="radio" name="box2" onClick="iro20();"><font color="black">white</font></td>
<td width="45" bgcolor="red"><INPUT TYPE="radio" name="box2"onClick="iro21();"><font color="black">red</font></td>
<td width="45" bgcolor="yellow"><INPUT TYPE="radio" name="box2" onClick="iro22();"><font color="black">yellow</font></td>
<td width="45" bgcolor="pink"><INPUT TYPE="radio" name="box2" onClick="iro23();"><font color="black">pink</font></td>
<td width="45" bgcolor="blue"><INPUT TYPE="radio" name="box2"onClick="iro24();"><font color="black">blue</font></td></tr>
</table></center>

<center><table border="0" align="center" width="400">
<tr><td colspan="2" align="center">
<TEXTAREA NAME="memo" ROWS ="5" COLS="54"></TEXTAREA>

<center><table border="0" width="400">
<tr><td align="center"><font size="2"color="white">(タグ有効)無茶なタグは打たないで下さい、壊れやすい掲示板(*^^*ゞ</font></td></tr>
</table></center>
<INPUT TYPE="submit" VALUE="送信" > <INPUT TYPE="reset" VALUE="取り消し"></tr>
</table></center>
</FORM>
MAMA

print "<font color='#ffffff'><li>$error</font>
";

$logfile = "./logfile.txt";
open(LOGFILE, "+<$logfile");
@logs = <LOGFILE>;
foreach $kakiko ( @logs ){
print $kakiko;
}
close( LOGFILE );
print "<center><font color='#ffffff'>Copyright(C) tensyu</center>";
print "</html>";
print "</body>";

exit;
返信機能も考えようっと(^o^)