お前らのデスクトップを晒してくださいinFF・DQ板

このエントリーをはてなブックマークに追加
237名前が無い@ただの名無しのようだ
#!/usr/bin/perl
#↑サーバーの設定に合わせてね

#等幅でみてちょ(笑 (重要)
#デザイン崩れてても文句いわないでね(^_^;)
##############################################################
# #
# allremake.cgi ver1.69β1 by chiba #
# <allhtml更新部分> #
# #
##############################################################


$cgi="allremake.cgi";
$ver="1.69β1";


###########目次###########
#(01)目次
#(02)メインルーチン (本筋)
#(03)フォームのデコード (&decode)
#(04)投稿部分&メニューのhtml作成 (&makehtmlhead)
#(05)スレッドのhtml作成 (&makehtmlbody)
#(06)ロックファイル(symlink関数) (&lock1)
#(07)ロックファイル(open関数) (&lock2)
#(08)エラー処理 (&error)
#(09)リメイク処理 (&remake)
#(10)スレッドのhtmlのリメイク (&remakehtml)
#(11)i-mode (&imode)
238名前が無い@ただの名無しのようだ:03/03/27 01:12 ID:28/TROH5
##################################################
#############☆(02)メインルーチン☆###############
##################################################
#config.cgiの読み込み。
open(CONF,"./config.cgi")|| &error("config.cgiが開けません","no");
@conf=<CONF>;
close(CONF);
foreach(@conf){tr/\x0D\x0A//d;}
($sitename,$subtitle,$nanashiname,$delmessage,$resusuu,$suresuu,$menusuu,$sureseigen,$hostrec,$wrescheck,$trescheck,$new,$lockkey,$delcheck,$mailing,$mailto,$sendmail,$ng,$ngword,
$namecolor,$capcolor,$sagecolor,$titlecolor,$body,$rogo,$table,$table2,$table3,$table4,$table6,$readresbody,$koukoku,$readtitlebody,$itenmessage,$pass,$htmlpath,$htmlzpath,$cgizpath,$kaigyouseigen,
$shouryakuseigen,$countzpath,$rogosita,$version,$imode,$ranking,$ipath,$head,$headsuu,$headbody,$headtable,$jst,$meta)=@conf;


$|=1;

&decode;#----------------------------------------フォームのデコード
$st=$FORM{st}+5;
$salt = substr($pass, 0, 2);
if (($version eq "1.6") && ($pass ne crypt($FORM{pass}, $salt)) || ($version ne "1.6") && ($pass ne $FORM{pass})){&error("パスワードが違います","no"); }
open(ALLBOARD,"board.txt");

while(<ALLBOARD>){
($board,$itenyes)=(split /<>/)[0,3];
if($itenyes eq "yes"){$countbo--;}
if($FORM{st} <= $countbo && $st > $countbo && $itenyes ne "yes"){
239名前が無い@ただの名無しのようだ:03/03/27 01:13 ID:28/TROH5
# ロックファイル名
@lockfile = ("./lock/$board.lock");
$lognewfile="$htmlpath/$board/${board}_newb.txt";
# ロック処理
if($lockkey eq 'symlink'){&lock1;}
elsif($lockkey eq 'open'){&lock2;}

if($FORM{remake} ne "no"){&remake;}
else{
open(LOG,"$htmlpath/$board/${board}_newb.txt") || &error("$htmlpath/$board/${board}_newb.txtが開けません","lock");
eval{flock(LOG,1);};
while(<LOG>) {$lognewsuu++;}
close(LOG);
}

#板の設定ファイルを開く
open(BOARD,"./board/$board.txt")|| &error("./board/$board.txtが開けません","no");
($bbstitle,$setumei,$nanashiname,$bodybo,$oekaki,$sureddosuu,$menusureddosuu,$resusuubo
,$sureseigenbo,$hostrec,$trescheck,$wrescheck,$rogobo,$tablebo,$table6bo,$table2bo,$table3bo,
$table4bo,$koukokubo,$rogositabo,$newbo,$ibo,$nanashiita,$menuhyouji,$rankingbo,$headbo,$headsuubo,$headtablebo)=split(/<>/,<BOARD>);
close(BOARD);

$resusuu=$resusuubo || $resusuu;
$suresuu=$sureddosuu || $suresuu;
$menusuu=$menusureddosuu || $menusuu;
$sureseigen=$sureseigenbo || $sureseigen;
$body=$bodybo || $body;
$table=$tablebo || $table;
$table6=$table6bo || $table6;
$table2=$table2bo || $table2;
$table3=$table3bo || $table3;
$table4=$table4bo || $table4;
240名前が無い@ただの名無しのようだ:03/03/27 01:16 ID:28/TROH5
&makehtmlhead;#-----------------------------------投稿部分とかのHTML作成
&makehtmlbody;#-----------------------------------スレッドの内容のHTML作成
if($imode eq "はい"){&imode;}
# ロック解除
foreach $lockfiles (@lockfile){
if (-e "$lockfiles") { unlink($lockfiles); }
}
push(@board,"${board}_$bbstitle");
}
elsif($st < $countbo){
print "Content-type: text/html;charset=x-sjis\n\n";
foreach(@board){
($board,$bbstitle)=split /_/;
print "<a href=\"$htmlzpath/$board/index.html\" target=\"_blank\">$bbstitle</a><BR>";
}

print <<"_EOF_";
上記の板をリロード&リメイクしました
<a href="./allremake.cgi?pass=$FORM{pass}&st=$st&remake=$FORM{remake}">次に進む</a>
_EOF_
close(ALLBOARD);
exit;
}
241名前が無い@ただの名無しのようだ:03/03/27 01:16 ID:28/TROH5
$countbo++;
}
close(ALLBOARD);
$location="$cgizpath/kanri.cgi?mode=tool&pass=$FORM{pass}";
if($meta eq "はい"){
print "Content-type: text/html;charset=x-sjis\n\n";
print<<"_EOF_";
<html>
<head>
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=$location">
<title>自動ページ移動</title>
</head>
<body bgcolor=white>
<a href=http://www.megabbs.com>自動ページ移動中です。<br>
移動しない場合はこの文字列をクリックしてください。</a>
</body></html>
_EOF_
}else{
print "Content-type: text/html;charset=x-sjis\n";
print "Location: $location\n\n";
}
exit;
242名前が無い@ただの名無しのようだ:03/03/27 01:16 ID:28/TROH5
##################################################
#############☆(03)フォームのデコード☆###########
##################################################
sub decode {
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} else { $buffer = $ENV{'QUERY_STRING'};}

@pairs = split(/&/,$buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack('H2',$1)/eg;
$FORM{$name} = $value;
}
# 一時ファイルを定義
$temp = "$$";
if ($temp eq '') {
srand;
$temp = 1000000000000000 * rand;
}
$tmpfile = "$temp" . '.tmp';
}
243名前が無い@ただの名無しのようだ:03/03/27 01:19 ID:28/TROH5
##################################################
######☆(06)投稿部分&メニューのhtml作成☆########
##################################################
sub makehtmlhead{
open CRYPT,"$htmlpath/$board/crypt.txt";
$boardcry=<CRYPT>;
close CRYPT;
$boardcry=~tr/\n//d;

$write_html="$htmlpath/$board/index.html";
$ST=$suresuu+1;
$ED=$suresuu+$suresuu;

open(HTML,">$write_html");

eval{flock(HTML,2);};
244名前が無い@ただの名無しのようだ:03/03/27 01:19 ID:28/TROH5
print HTML<<"_EOF_";
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=x-sjis">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<SCRIPT LANGUAGE="JavaScript">
<!--
Name = getCookie("NAME");
Mail = getCookie("EMAIL");
function getCookie(key, tmp1, tmp2, xx1, xx2, xx3) {
tmp1 = " " + document.cookie + ";";
xx1 = xx2 = 0;
len = tmp1.length;
while (xx1 < len) {
xx2 = tmp1.indexOf(";", xx1);
tmp2 = tmp1.substring(xx1 + 1, xx2);
xx3 = tmp2.indexOf("=");
if (tmp2.substring(0, xx3) == key) {
return(unescape(tmp2.substring(xx3 + 1, xx2 - xx1 - 1)));
}
xx1 = xx2 + 1;
}
return("");
}
// -->
</SCRIPT>
245名前が無い@ただの名無しのようだ:03/03/27 01:20 ID:28/TROH5
<title>$bbstitle</title>
</head>
$body
_EOF_
if ($imode eq "はい" && $ibo eq "はい"){
print HTML<<"_EOF_";
<a href=$htmlzpath/$board/i/>i-mode</a>
_EOF_
}
print HTML<<"_EOF_";
$rogobo
$table<tbody><tr>
<td>
<table width=100% border=0>
<tr>
<td valign=top nowrap><a name=#top></a><A href=#20>▲</A>00<A href=#1>▼</A><a name=0><a name=21><b>$bbstitle</b>$subtitle<br>
$setumei
</font></td>
<td valign=top align=right nowrap> <a href=./index.html>リロード</a> <A href=#20>▲</A>00<A href=#1>▼</A><a name=pagetop><a name=0><a name=21>
</td>
</tr>
</table>
<BASEFONT SIZE=3 FACE="MS ゴシック">
_EOF_
if($oekaki eq "yes"){
print HTML <<"_EOF_";
<font size=6>
<center><a href=$cgizpath/oekakimega.cgi?board=$board&mode=oekaki><b>お絵かきする</b></a>
</center></font>
<br>
_EOF_
246名前が無い@ただの名無しのようだ:03/03/27 01:22 ID:28/TROH5
}
else{
print HTML <<"_EOF_";
<form action=$cgizpath/megabbs.cgi method="POST">
<input type=hidden name=crypt value=$boardcry>
<input type=hidden name=mode value=regist>
<input type=hidden name=board value=$board>
pre<input type=checkbox name=pre value=on> 
等幅<input type=checkbox name=touhaba value=on>
<br>
題名: <input name=sub size=50>
<br>
_EOF_
if($nanashiita ne "nanashi"){
print HTML <<"_EOF_";
名前:
<SCRIPT Language="JavaScript">
<!--
document.write("<INPUT NAME=name SIZE=20 VALUE=",Name , ">メール:<INPUT NAME=email SIZE=20 VALUE=",Mail , ">");
// --></SCRIPT>
<NOSCRIPT><INPUT NAME=name SIZE=20 >メール:<INPUT NAME=email SIZE=20 ></NOSCRIPT>
<br>
_EOF_
}
print HTML <<"_EOF_";
<TEXTAREA NAME=com COLS=80 ROWS=8 wrap=soft></TEXTAREA><br>
<input type=submit value=スレッドを立てる name=submit>
<hr><b>
247名前が無い@ただの名無しのようだ:03/03/27 01:23 ID:28/TROH5
_EOF_
}
$bbstitleb=$bbstitle;
$htmlzpathb=$htmlzpath;
$bbstitleb =~ s/([^\w ])/'%' . unpack('H2', $1)/eg;
$bbstitleb =~ tr/ /+/;
$htmlzpathb =~ s/([^\w ])/'%' . unpack('H2', $1)/eg;
$htmlzpathb =~ tr/ /+/;
print HTML<<"_EOF_";
<font size=2>板が壊れているときなどは<a href=$cgizpath/megabbs.cgi?board=$board&remake=no>ここ</a>をクリックしてください
_EOF_
if ($ranking eq "はい" && $rankingbo eq "はい"){
print HTML<<"_EOF_";
<img src=$countzpath/count.cgi?board=$board&bbstitle=$bbstitleb&htmlzpath=$htmlzpathb><br>
<a href=$countzpath/count.cgi>板別Ranking</a>
_EOF_
}
else{print HTML "<br>";}
if($new eq "はい" && $newbo eq "はい"){
print HTML<<"_EOF_";
<a href=$cgizpath/new.cgi>最新20件 on $sitename</a><a href=$cgizpath/new.cgi?i=on>(i)</a> 
_EOF_
}
248名前が無い@ただの名無しのようだ:03/03/27 01:24 ID:28/TROH5
print HTML<<"_EOF_";
<a href=$cgizpath/readnextpage.cgi?ST=$ST&ED=$ED&bo=$board>次のページを見る</a> 
<a href=$cgizpath/readtitle.cgi?bo=$board&br=on target=_blank>過去ログメニュ</a>
<a href=$cgizpath/readtitle.cgi?bo=$board target=_blank>ー</a>
 <a href=./index.html>リロード</a></b>
</TD>
</TR>

</TABLE>
</font>

</form>
_EOF_
if($menuhyouji eq "はい"){
print HTML<<"_EOF_";
$table6
<TR>
<TD>

_EOF_

open(MENU,"./boardmenu.txt");
while(<MENU>){print HTML;}
close(MENU);

print HTML<<"_EOF_";
</TD>
</TR>
</TABLE>