#!/usr/local/bin/perl # 自分自身のファイル名を取得 $script_name = $ENV{SCRIPT_NAME}; $script_name =~ s|.*/([^/]+)$|$1|; # データファイル名 $data_file = $script_name; $data_file =~ s/\.cgi$/.dat/; # jcode.pl をロード require 'jcode.pl'; # 標準入力からデータを読み込む read(STDIN,$buf,$ENV{CONTENT_LENGTH}); # 引数解析 foreach ( split('&',$buf) ){ ($key,$value) = split('=',$_); $value =~ tr/+/ /; $value =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C",hex($1))/eg; &jcode::convert(\$value,'euc'); $value =~ s/&/&/g; $value =~ s//>/g; $value =~ s/\r\n|\r|\n/
/g; if ( $key eq 'FROM' ){ $from = $value; } elsif ( $key eq 'MESSAGE' ){ $message = $value; } } print "Content-type: text/html\n\n"; print < 掲示板

掲示板


ハンドルネ―ム:


END # 発言ならデータファイルに追加 if ( $from ne '' && $message ne '' ){ ($sec,$min,$hour,$day,$mon,$year) = localtime(time()); $year += 1900; $mon++; $now_date = sprintf("%d/%02d/%02d %02d:%02d:%02d", $year,$mon,$day,$hour,$min,$sec); if ( $ENV{REMOTE_HOST} =~ m/^[\d\.]+$/ ){ $host = $ENV{REMOTE_HOST}; } else { $host = gethostbyaddr(pack('C4',split(/\./,$ENV{REMOTE_ADDR})),2) || $ENV{REMOTE_ADDR}; } open(OUT,">> $data_file"); print OUT "発言者: $from
\n"; print OUT "$now_date $host
\n"; print OUT "$message
\n"; close(OUT); } # データファイル内容を表示 open(IN,"$data_file"); print ; close(IN); print < END