#! /usr/local/bin/perl # #ゆいぽすと1.1(list.cgi) # require './jcodeLE.pl'; &init;&decode; if ($make ne 'on'){ $page = 0 if ($page eq ''); $page2 = $page*$lmax; &html; exit; }else{ &make ; exit; } ################################################## sub init{ ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime(time); $min = "0$min" if ($min < 10); $month++; $youbi = ('日','月','火','水','木','金','土') [$wday]; $date = "$month月$mday日($youbi)$hour時$min分$sec秒"; $today = "$month/$mday"; $chat_file = './den/log.000.dat'; $roommax = 300;#設置できる最大の私書箱数 $cgidir = 'http://www.plumfield.ne.jp/~neu/reflex/yuipost/';#postというディレクトリ内にCGIを置く場合 if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); } else { $buffer = $ENV{'QUERY_STRING'}; } }#init END ################################################## sub html { print "Content-type: text/html\n\n"; print <<"_HTML_"; あやしいわーるどREFLEX 新規掲示板作成 _HTML_ print <<"_HTML_"; あやしいわーるどREFLEX 新規掲示板作成 リスト一覧 最新投稿一覧

タイトル 
ID     (半角英数字を必ず記入)
パスワード (半角英数字を必ず記入)

背景色    
文字色    
リンク色   
既読リンク色
題名色    
背景画像   


設定を変更するときには、IDとパスワードは前と同じものを使用してください。

ゆいぽすと(Free)
_HTML_ }#html END ################################################## sub listing{ }#listing END ################################################## sub decode { @pairs = split(/&/,$buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; &jcode'convert(*value,'sjis'); $value =~ s/\n//g;$value =~ s/\r//g;$value =~ s/:#//g; $value =~ s///g; $value =~ s/>//g;$value =~ s/\x00-\x1f//g; $value =~ s/$//g;$value =~ s/%//g;$value =~ s/|//g; $FORM{$name} = $value; } $id=$FORM{'id'}; $pass = $FORM{'pass'}; $title = $FORM{'title'}; $page = $FORM{'page'}; $make = $FORM{'make'}; $amode = $FORM{'amode'}; $bmode = $FORM{'bmode'}; $bgcolor = $FORM{'bgcolor'}; $mgcolor = $FORM{'mgcolor'}; $lkcolor = $FORM{'lkcolor'}; $vlkcolor = $FORM{'lkcolor'}; $subcolor = $FORM{'sbcolor'}; $bimage = $FORM{'backimage'}; if($FORM{'chg'}){ $hotlist = $FORM{'h'}; $rev = $FORM{'r'}; $lmax = $FORM{'lm'}; }else{ &getcookie;} $option = $FORM{'op'}; $lmax = '2' if($lmax eq ''); $rev = 'on' if($rev eq '');$hotlist = '0' if($hotlist eq ''); &setcookie; }#decode END ################################################## sub make {#新規話題ルームを設置 #タイトルチェック。 #&err(3) if(length($title) < 3); #&err(4) unless(($ENV{'HTTP_REFERER'} eq '') || ($ENV{'HTTP_REFERER'}=~/$cgidir\/list.cgi/) ); $chat_file="./pref/bbb.dat"; $chat_file =~ s/bbb/$id/g; $data_file="./data/bbb.dat"; $data_file =~ s/bbb/$id/g; open(DB, $chat_file); @lines = ; close(DB); $set=shift(@lines); ($idd,$passd,$dum) = split(/:#/,$set); if(($idd eq $id)&&($passd ne $pass)){&err(1);} $value = "$id:#$pass:#$title:#$amode:#$bmode:#$bgcolor:#$mgcolor:#$lkcolor:#$vlkcolor:#$subcolor:#$bimage:#\n"; open(DB,">$chat_file"); print DB $value; print DB @lines; close(DB); if (!open(DB,"$data_file")) { open(OUT,">$data_file"); print OUT $none; close(OUT); } close(DB); chmod 0600, "./pref/$id.dat";#0666でないとダメかも。 chmod 0666, "./data/$id.dat";#0666でないとダメかも。 $buffer=~s/&title=/&name2=/; &locate; }#make END ################################################# sub locate{ #移動します。 print "Content-type: text/html\n\n"; print <<"_HTML_"; $title

作成完了。



こちらに移動します。
何か投稿をするとリストに追加されます。





ゆいぽすと(Free)
_HTML_ exit; }#make END ################################################# sub getcookie{ #くっきーを頂きます。 $cooks = $ENV{'HTTP_COOKIE'}; $cooks = '' unless($cooks =~s/.*yuipost=(.*)yuipostend.*/$1/) ; ($hotlist,$rev,$lmax) = split(/\t/, $cooks); }#getcookie END sub setcookie{ #くっきーをブラウザにプレゼントします。 $data = "$hotlist\t$rev\t$lmax\tyuipostend"; print "Set-Cookie: yuipost=$data; expires=Wednesday, 09-Nov-1999 00:00:00 GMT\n" unless ($ENV{'HTTP_COOKIE'}=~/$data/); }#このクッキーは1999/11/9まで有効です。それを過ぎたら、日付をもっと先にして。 sub err{ $error = $_[0]; print "Content-type: text/html\n\n"; print <<"_HTML_"; $title

タイプ $error のエラーが発生しました。



エラータイプの説明

タイプ0:ログファイルが開けません。
タイプ1:私書箱設定の修正時に必要となるパスワードが間違っています。
タイプ3:私書箱のタイトルが短いです。
タイプ4:予期せぬエラーです。
タイプ5:設置数が最大設定値$roommaxを越えるため、新規に設置ができません。





ゆいぽすと(Free)
_HTML_ exit; } __END__