#! /usr/local/bin/perl # #ゆいちゃっとMini1.1(chat.cgi) # require './jcodeLE.pl'; $| = 1; &init; &decode; &jikan; &write if ($chat); &html;exit; sub init{ #初期設定など $chat_file = './chat.dat'; #チャットログ(ファイル名はなるべく変更しておくこと。) $method = 'GET';#やっぱり、GETよねぇ〜 $title = 'ゆいちゃっとMini1.0(伝言板仕様)'; $body='
'; $max = 50;#ログの最大行数 $host = &gethost;if($host=~/bmc/){$host="ppp753.master.ad.jp";} ####アクセス制限を使用するなら、#を消す。 #$kill_file = './kill.dat';#アクセス制限用 #open(DB,"$kill_file") || die "Cannot Open Log File $kill_file: $!"; # @lines2 =]*)>(.*)/$1/; $tag =~s/^\/(.*)//; $tag =~s/^([^\s]*).*/$1/; } $chat.='>' if($chat=~/<\/$/); @tags = reverse( @tags ); foreach $tag ( @tags ){ next if($tag =~/(img|^hr$|^br$)/i); $chat.="$tag>" if($tag); } $chat.='">タグえらー?' if( ($chat=~/.*<\/A>/i) ); $chat =~ s/; close(DB); }#readlog END sub writelog{ #$valueを@linesに加えたのち、書き込む (@lines < $max-1) || (@lines = @lines[0 .. $max - 2]); unshift( @lines,$value); open(DB,">$chat_file") || &ended('$chat_file write error'); eval 'flock(DB,2);'; seek(DB,0,0); print DB @lines; eval 'flock(DB,8);'; close(DB); }#writelog END sub getcookie{ #くっきーを頂きます。 $cooks = $ENV{'HTTP_COOKIE'}; $cooks = '' unless($cooks =~s/.*yuiminidata=(.*)yuiminiend.*/$1/); ($name,$dmy) = split(/\t/, $cooks); }#getcookie END sub setcookie{ #くっきーをブラウザにプレゼントします。 local($dmy,$mdc,$monc,$yrc,$wdayc,$mc,$yc); ($dmy,$dmy,$dmy,$mdc,$monc,$yrc,$wdayc,$dmy,$dmy) = localtime(time + 7776000); $yc = ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday') [$wdayc]; $mc = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec') [$monc]; $yrc = $yrc+1900; $mdc = "0$mdc" if ($mdc < 10); $data = "${name}\tyuiminiend"; return if(index($ENV{'HTTP_COOKIE'},$data) >= 0); print "Set-Cookie: yuiminidata=$data; expires=$yc, $mdc-$mc-$yrc 00:00:00 GMT\n"; }#このクッキーはだいたい3ヶ月間有効です。 sub ended{ print "Content-type: text/plain\n\n $_[0] \n"if($_[0]);#この行は削除可です。 exit; } sub gethost{ $host=$ENV{'REMOTE_HOST'}; $host=$ENV{'HTTP_VIA'} if( $ENV{'HTTP_VIA'}=~s/.*\s(\d+)\.(\d+)\.(\d+)\.(\d+)/$1.$2.$3.$4/ ); $host=$ENV{'HTTP_X_FORWARDED_FOR'} if( $ENV{'HTTP_X_FORWARDED_FOR'}=~s/^(\d+)\.(\d+)\.(\d+)\.(\d+)(\D*).*/$1.$2.$3.$4/ ); $host=$ENV{'HTTP_FORWARDED'} if( $ENV{'HTTP_FORWARDED'}=~s/.*\s(\d+)\.(\d+)\.(\d+)\.(\d+)/$1.$2.$3.$4/ ); return $host; }#gethost END __END__