#!/usr/local/bin/perl
# **********************************************************
# 標準入力より生データを入力
# **********************************************************
read( STDIN, $data, $ENV{"CONTENT_LENGTH"} );
# **********************************************************
# 生データを "&" を区切り文字にして、配列へ保存
# **********************************************************
@Fields_Data = split(/&/, $data);
# **********************************************************
# データのセットを連想配列に保存
# **********************************************************
foreach ( @Fields_Data ) {
($Name, $Value) = split( /=/, $_ );
$Value =~ tr/+/ /;
$Value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
# &jcode'convert(*Value, "sjis");
$Form{$Name} = $Value;
}
# **********************************************************
# クッキーの処理
# **********************************************************
if ( $ENV{'HTTP_COOKIE'} ne "" ) {
@ccolor = split( /=/, $ENV{'HTTP_COOKIE'} );
$color = $ccolor[1];
}
# **********************************************************
# HTTP ヘッダの出力
# **********************************************************
print "Content-Type: text/html; Charset=shift_jis\n";
if ( $Form{"command"} eq '色設定' ) {
$color = $Form{"Color"};
print "Set-Cookie: color=$Form{'Color'}; Fri, 31-Dec-2010 23:59:59;\n";
}
print "\n";
# **********************************************************
# データ受信処理
# **********************************************************
if ($ENV{'REQUEST_METHOD'} eq "POST" ) {
if ( $Form{"command"} eq '送信' ) {
open(IN,"lightbox.log");
@lines = <IN>;
close(IN);
($sec,$min,$hour,$mday,$mon) = localtime(time);
$date = sprintf("%02d/%02d-%02d:%02d:%02d",$mon+1,$mday,$hour,$min,$sec);
open(OUT,">lightbox.log");
$Form{"Data"} =~ s/\r//g;
$Form{"Data"} =~ s/\n//g;
unshift ( @lines, "$Form{'Handle'}\t$date\t$Form{'Data'}\n" );
print OUT @lines;
close(OUT);
&Reload;
}
}
# **********************************************************
# デバッグ用の出力
# **********************************************************
if ( 1 ) {
print "<table border=1 cellpadding=5>";
while ( ($key,$val) = each %Form ) {
print "<tr>\n";
print "<td>$key</td>\n";
print "<td>$val</td>\n";
print "</tr>\n";
}
print "</table>";
}
# **********************************************************
# HTMLの出力(ヒアドキュメント)
# **********************************************************
print <<INPUT;
<HTML>
<HEAD>
<STYLE type="text/css">
.doumi { background-color:$color }
</STYLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=shift_jis">
</HEAD>
<BODY class=doumi>
<FORM method="POST" target="Input" action="input.cgi">
<TEXTAREA name="Data" cols="80" rows="10"></TEXTAREA>
<INPUT type=hidden name=Handle value="$Form{'Handle'}">
<INPUT type="submit" name="command" value="送信">
</FORM>
<FORM method="POST" target="Input" action="input.cgi">
<INPUT type=text name=Handle value="$Form{'Handle'}">
<INPUT type="submit" name="command" value="名前">
</FORM>
<FORM method="POST" target="Input" action="input.cgi">
<SELECT name=Color value="$color">
<OPTION>blue
<OPTION>red
<OPTION>pink
<OPTION>black
</SELECT>
<INPUT type=hidden name=Handle value="$Form{'Handle'}">
<INPUT type="submit" name="command" value="色設定">
</FORM>
</BODY>
</HTML>
INPUT
# **********************************************************
# ログ再表示用スクリプト出力関数
# **********************************************************
sub Reload {
print <<RELOAD;
<SCRIPT language=JavaScript>
parent.Output.location.reload(true);
</SCRIPT>
RELOAD
}