お前らのデスクトップを晒してくださいinFF・DQ板
237 :
名前が無い@ただの名無しのようだ :
03/03/27 01:11 ID:28/TROH5 #!/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>