200X/00/09
環境変数を使えばなんと!!沢山の情報がゲットできる(*^_^*)
REMOTE_ADDR これでIPもゲットだぜ!!
HTTP_REFERER これで前に見ていたページのURL
REMOTE_HOST これでリモートホスト名
HTTP_USER_AGENT これでブラウザーの情報
まぁ?これぐらいかなぁ使えそうなの??
これで管理用のデータファイルを作っておけば、何処のどちら様からのカキコだか判断できるので、なにかと??便利??
と・・言う訳で作っちゃいました(⌒^⌒)bうふっ

赤い部分が環境変数の情報所得部分。
緑が管理用ファイルの吐き出し部分。
表示はなにも変わらないのですが、ちゃんと「kanrifile」で情報をプールします。
#!/usr/local/bin/perl

print "Content-type: text/html\n\n";

read(STDIN, $naka, $ENV{"CONTENT_LENGTH"});

@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/<;/&lt;/g;
$migi =~ s/>;/&gt;/g;
上2行は改行の制御部分ですが&が全角です。
$migi =~ s/\r?\n/<BR>/gi;
$kaku{$hidari} = $migi;
}

( $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 );
$name = $kaku{'name'};
$memo = $kaku{'memo'};

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

$logfile = "../logfile.txt";
$kanrifile = "../kanrifile.txt";
$dasufile = "../dbbbs2.html";
print <<MAMA;
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=http://127.0.0.1/~****/****.html">
<BODY>
ただ今書き込み中<p>
MAMA

open(LOGFILE, "+<$logfile");
@logs = <LOGFILE>;
$ban = $logs[0] +1;
$memo =~ s/\r?\n/<BR>/g;

$logdata = $ban."<table><tr><td><b>$name</b>[ $hyouji$youbi$jikan]</td></tr><td>$memo</td></tr></table><hr>"."\n";
unshift( @logs, $logdata );
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".$hyouji."\t".$youbi."\t".$jikan."\t".$ip."\t".$reurl."\t".$host."\t".$bura "\n";
unshift( @kanri, $kanridata );
seek( KANRIFILE, 0, 0 );
print KANRIFILE @kanri;
truncate( KANRIFILE, tell( KANRIFILE ));
close( KANRIFILE );

open(DASU, ">$dasufile");
select DASU;
print <<MAMA;
<HTML>
<HEAD><TITLE>TESTBBS</TITLE></HEAD>
<BODY LINK="#000000" VLINK="#000000">
<FORM METHOD="POST" ACTION="cgi-bin/****.cgi">
name<INPUT NAME="name"><P>
message<TEXTAREA NAME="memo" ROWS="4" COLS="60">
</TEXTAREA><P>
<INPUT TYPE="submit" VALUE="submit">
<INPUT TYPE="reset" VALUE="reset">
<HR>
MAMA
print $logs[0];
print $logs[1];
print $logs[2];
print "</form>";
print "</html>";
close(DASU);
exit;