#! /usr/bin/perl #うまく動かない時は↑を #! /usr/local/bin/perl #ってするといいかも・・・ # # かえでちゃっとCute.(ゆいちゃっとNT.) Ver.1.1 # #enter.cgiは、入室時の処理などを行います。 require './jcodeLE.pl'; require './pref.cgi'; $| = 1; &init; &getcookie; &htmlenter if($ENV{'QUERY_STRING'} eq 'enter'); &decode; &jikan; $autoclear = $FORM{'autoclear'}; $color = $FORM{'color2'} if($FORM{'color2'}); @color3 = split(/"/,$color);$color = $color3[0]; &setcookie; &hide; &html; &readlog; $brauza = $ENV{'HTTP_USER_AGENT'}; $brauza =~s/$name$inmessage $brauza"; $secret = "\t"; $value = "$adminname\t$admicolor\t$email\t$chat\t\t$date\t$host\t$hostip\t$times\t$secret\t$adminimg\t\n"; &readlog; $i = 1; $j = 0; #連続同一発言禁止 foreach $line (@lines) { last if($i > $repavoid); ($vname, $vcolor,$vemail,$vchat,$vflag,$vdate,$vhostnm,$vhostip,$vtimes,$vsecretip,$vsecretnm,$dmy) = split(/\t/, $line); if(($vname eq $adminname) && ($vchat eq $chat) && ($vhostnm eq $host) && ($vsecretip eq '')){$value='';} $i++; } #連続同一ホスト発言禁止(発言間隔制限) foreach $line (@lines) { last if($j); ($vname, $vcolor,$vemail,$vchat,$vflag,$vdate,$vhostnm,$vhostip,$vtimes,$vsecretip,$vsecretnm,$dmy) = split(/\t/, $line); if(($vhostnm eq $host) && ($secavoid >= ($times - $vtimes))){$value='';$j=1;} } #書き込み許可URL以外の書き込み対策 $entf = 1; &refchk; if(($refcnt>0) && ($value)){&writelog;} #書き込み許可URL以外の書き込み対策終わり &sanka; &ended(); exit; sub getcookie{ #くっきーを頂きます。 $cooks = $ENV{'HTTP_COOKIE'}; $cooks='' unless($cooks =~s/.*yuidata=(.*)yuiend.*/$1/); ($name,$reload,$email,$mode,$color,$window,$lastdate,$count,$autoclear,$fcimg,$cute) = split(/\t/, $cooks); $histry = "$count回目:LAST LOGIN:$lastdate" if($lastdate); if(!$count){ #くっきー情報の無い場合のデフォルト値 $reload = 30; $mode = 'checked';$color = 'red'; $window = 10; $count = 1;$autoclear = 'checked';$fcimg=''; $cute='checked';} }#getcookie END sub setcookie{ #くっきーをブラウザにプレゼントします。 local($dmy,$mdc,$monc,$yrc,$wdayc,$mc,$yc); ($dmy,$dmy,$dmy,$mdc,$monc,$yrc,$wdayc,$dmy,$dmy) = localtime($times + 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); $count++; $data = "$name\t$reload\t$email\t$mode\t$color\t$window\t$date\t$count\t$autoclear\t$fcimg\t$cute\tyuiend"; $data = 'deleted' if($FORM{'cook'} ne 'ok'); print "Set-Cookie: yuidata=$data; expires=$yc, $mdc-$mc-$yrc 00:00:00 GMT\n"; }#このクッキーはだいたい3ヶ月間有効です。 sub html{ $ranklink="[発言ランキング]" if($rank_file); $denpolink="[電報機能\]" if($denpo); if($cute eq "checked"){$cutepr = "利用する";} else{$cutepr = "利用しない";} $bkpg = ""; if($fcimg){$tfcimg=""} else{$tfcimg='';} foreach $link0 (@links) { @link1 = split(/=/,$link0); $bkpg = $bkpg . "[$link1[0]]"; } $vname = $name; $buffer = "mode=" . $mode . "&email=&reload=" . $reload . "&color=" . $color . "&name=" . &encode($vname) . "&window=" . $window; print "Content-type: text/html\n\n"; print <<"_HTML_"; $title$metacode $body _HTML_ if($mode eq 'checked'){ print <<"_HTML_"; $hidden $hidden
$denpolink $bkpg $ranklink
太字: 斜体: おなまえ:$name$reload秒更新
発言:
$kao $lmojicolor ${mojisize}
$tfcimg キュート機能\:$cutepr ログ行数:$logw
$hidden
Π
_HTML_ }else{ print <<"_HTML_";
$title
おなまえ:$name  $hidden
_HTML_ } }#html END sub htmlenter{#入室前の画面 if($cookiechk){$vcookreq = 'クッキーをONにしないと入室&発言できません
';} $namecolor = "