/[suikacvs]/webroot/sccc/board-t/admin/kanri.cgi
Suika

Contents of /webroot/sccc/board-t/admin/kanri.cgi

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations) (download)
Wed Jan 12 04:23:01 2005 UTC (20 years, 3 months ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
Error occurred while calculating annotation data.
New

1 #!/usr/local/bin/perl
2
3 ### kanri.cgi ver 2.03 (2001/08/03)
4 # -----------------------------------------------------------
5 $ver="ver 2.03 (2001/08/03)";
6
7 $script = "./kanri.cgi";
8
9 # パスワード作成に使用したsalt
10 $salt = "z8";
11 # 暗号化した管理パスを入れたファイル
12 $pass_file = "./password.cgi";
13 # 設定ファイル名称
14 $SETTINGFILE="/SETTING.TXT";
15
16 $USERURL="../../";
17 $NOWTIME=time();
18
19 $p_dir = 0777;
20 $p_txt = 0644;
21
22 # 保存するデータキーいちらん
23 @SAVEKEY = (
24 "BBS_TITLE",
25 "BBS_TITLE_PICTURE",
26 "BBS_TITLE_COLOR",
27 "BBS_TITLE_LINK",
28 "BBS_BG_COLOR",
29 "BBS_BG_PICTURE",
30 "BBS_NONAME_NAME",
31 "BBS_NONAME_NAME_KA",
32 "BBS_MAKETHREAD_COLOR",
33 "BBS_MENU_COLOR",
34 "BBS_THREAD_COLOR",
35 "BBS_TEXT_COLOR",
36 "BBS_NAME_COLOR",
37 "BBS_LINK_COLOR",
38 "BBS_ALINK_COLOR",
39 "BBS_VLINK_COLOR",
40 "BBS_THREAD_NUMBER",
41 "BBS_CONTENTS_NUMBER",
42 "BBS_LINE_NUMBER",
43 "BBS_MAX_MENU_THREAD",
44 "BBS_SUBJECT_COLOR",
45 "BBS_PASSWORD_CHECK",
46 "BBS_UNICODE",
47 "BBS_DELETE_NAME",
48 "BBS_LUNISOLAR_CALENDAR",
49 "BBS_WORLD_CALENDAR",
50 "BBS_DECIMAL_CALENDAR",
51 "BBS_HIRAKATA_CHECK",
52 "BBS_NAMECOOKIE_CHECK",
53 "BBS_MAILCOOKIE_CHECK",
54 "BBS_SUBJECT_COUNT",
55 "BBS_NAME_COUNT",
56 "BBS_MAIL_COUNT",
57 "BBS_MESSAGE_COUNT",
58 "BBS_NEWSUBJECT",
59 "BBS_THREAD_TATESUGI",
60 "BBS_AD2",
61 "SUBBBS_CGI_ON",
62 "NANASHI_CHECK",
63 "timecount",
64 "timeclose",
65 "BBS_PROXY_CHECK",
66 "BBS_OVERSEA_THREAD",
67 "BBS_OVERSEA_PROXY",
68 "BBS_RAWIP_CHECK",
69 "BBS_SLIP",
70 "BBS_DISP_IP",
71 "BBS_FORCE_ID",
72 "BBS_NO_ID",
73 "BBS_ADMIN_ID",
74 "BBS_ADMIN_NAME",
75 "BBS_GZIP_CHECK",
76 "BBS_GZIP_PATH",
77 "BBS_LOCATION_CHECK",
78 "BBS_WAIT_MINUTE",
79 "BBS_MAX_RES_COUNT",
80 "BBS_MAX_RES_SIZE"
81 );
82
83
84 # 環境変数からPOSTのでーたをもらう〜
85 if($ENV{'REQUEST_METHOD'} eq 'POST'){
86 read(STDIN,$query,$ENV{'CONTENT_LENGTH'});
87 my (@elements, $element, $key, $value);
88 @elements = split /&/, $query;
89 foreach $element (@elements){
90 $element=~tr/+/ /;
91 ($key,$value)=split /=/, $element;
92 $value =~ s/%([\dA-Fa-f]{2})/pack("C",hex($1))/ge;
93 $value =~ s/\r//;
94 $FORM{$key} = $value;
95 }
96 }
97
98 foreach (split(/; /,$ENV{'HTTP_COOKIE'})){
99 ($key, $value) = split /=/;
100 $cookie{$key} = $value;
101 }
102 if($cookie{'pass'}){$check=" checked";}
103
104 # 認証
105 $login=0;
106 if(-e $pass_file){
107 open(IN,$pass_file);
108 $pass = <IN>;
109 close(IN);
110 $chk = crypt($FORM{'pass'},$salt);
111 if ($pass eq $chk){$login=1;}else{$login_mes="パスワードが違います。";}
112 if (!$FORM{'pass'}){$login_mes="パスワードを入れてください。";}
113 }else{$login=1;}
114 if(!$login){
115 print "Content-type: text/html; charset=shift_jis\n\n";
116 print <<"EOF";
117 <html>
118 <head>
119 <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
120 <title>管理室入口</title>
121 </head>
122 <body>
123 $login_mes
124 <form action="$script" method="POST">
125 <input type=password name=pass value="$cookie{pass}">
126 <input type=submit name="submut" value="認証"><br>
127 <input type=checkbox name="cookie" value="checked"$check>cookie使用
128 </form>
129 </body>
130 </html>
131 EOF
132 exit;
133 }
134
135 if($FORM{'cookie'} eq 'checked'){
136 my $exp = 24 * 60 * 60; $exp *= 30;
137 my($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = gmtime(time + $exp);
138 $wday = ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday')[$wday];
139 $mon = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec')[$mon];
140 $year = $year+1900;$mday = "0$mday" if ($mday < 10);
141 $expires = "$wday, $mday-$mon-$year 00:00:00 GMT";
142 print "Set-Cookie: pass=$FORM{'pass'}; expires=$expires; path=/\n";
143 }
144
145 if($FORM{'mode'} eq "setting1") { &setting1; }
146 if($FORM{'mode'} eq 'file_edit'){&file_edit;}
147 if($FORM{'mode'} eq 'pass_change'){&pass_change;}
148 if($FORM{'mode'} eq 'del_cookie'){&del_cookie;}
149
150 &header;
151 #-----------------------------------------------------------
152 if($FORM{'mode'} eq 'setting_all'){&setting_all;}
153 if($FORM{'mode'} eq 'cap'){&cap;}
154 if($FORM{'mode'} eq "setting") { &setting; }
155 if($FORM{'mode'} eq 'make'){&make;}
156 if($FORM{'mode'} eq 'remove'){&remove;}
157
158 if($FORM{'mode'} eq 'conv1'){&conv1;}
159 if($FORM{'mode'} eq ''){&b_list;}
160 #-----------------------------------------------------------
161 &footer;
162
163 sub header{
164 print "Content-type: text/html; charset=shift_jis\n\n";
165 print <<"EOF";
166 <html>
167 <head><meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
168 <title>管理室</title></head>
169 <body>
170 <table border=0 cellspacing=0 cellpadding=0><tr><td><b>管理室</b>&nbsp;</td>
171
172 <td><form action="$script" method="POST"><input type=hidden name=pass value="$FORM{'pass'}"><input type=submit name="button" value="板一覧"></td></form>
173 <td><form action="$script" method=post><input type=hidden name=pass value="$FORM{'pass'}"><input type=hidden name="mode2" value="make"><input type=hidden name="mode" value="make"><input type="submit" name="Submit" value="板作成"></td></form>
174 <td><form action="$script" method="POST"><input type=hidden name=pass value="$FORM{'pass'}"><input type=hidden name="mode" value="cap"><input type="submit" value="キャップ管理"></td></form>
175 <td><form action="$script" method="POST"><input type=hidden name=pass value="$FORM{'pass'}"><input type=hidden name="mode" value="setting_all"><input type="submit" value="設定ツール"></td></form>
176
177 </tr></table>
178
179 <hr>
180
181 EOF
182 }
183 sub footer{
184 print <<"EOF";
185 <div align="right">
186 <font size=-2>$ver</font>
187 </div>
188 </body>
189 </html>
190 EOF
191 exit;
192 }
193
194
195
196
197 sub setting_all {
198 print <<"EOF";
199
200 <table border=0 cellspacing=0 cellpadding=0>
201 <tr>
202 <td>
203 <form action="$script" method="POST">
204 <input type=hidden name=pass value="$FORM{'pass'}">
205 <input type=hidden name="mode" value="del_cookie">
206 <input type=submit name="button" value="クッキー削除">
207 </td>
208 </form>
209 </tr>
210 </table>
211
212 <table border=0 cellspacing=0 cellpadding=0>
213 <tr><td><font size=-1><b>管理パスワード変更</b></font></td></tr>
214 <form action="$script" method="POST"><input type=hidden name=pass value="$FORM{'pass'}"><input type=hidden name=mode value="pass_change">
215 <tr><td><font size=-1>旧パスワード</font></td><td><input type=text name=password0 value=""></td></tr>
216 <tr><td><font size=-1>新パスワード</font></td><td><input type=text name=password1 value=""></td></tr>
217 <tr><td><font size=-1>確認    </font></td><td><input type=text name=password2 value=""></td></tr>
218 <tr><td colspan=2 align=right><input type=submit name="button" value="変更"></td></tr></form>
219 </table>
220 EOF
221
222 print <<"EOF";
223 <hr>
224 <table border=0>
225
226 <tr><td>
227
228 <form action="$script" method=post><input type=hidden name=pass value="$FORM{'pass'}">
229 <font size=-1>スレッド作成部分右側のタグ</font><input type=submit value="変更"><br>
230 <textarea rows=5 cols=39 wrap=soft name=text>
231 EOF
232 my $local = "../right.txt";if(-e $local){open(IN, "$local");print while <IN>;close(IN);}
233
234 print <<EOF;
235 </textarea>
236 <input type=hidden name=mode value="file_edit">
237 <input type=hidden name=file value="$local">
238 </td>
239 </form>
240 <td>
241 <form action="$script" method=post><input type=hidden name=pass value="$FORM{'pass'}">
242 <font size=-1>スレッド作成部分下のタグ</font><input type=submit value="変更"><br>
243 <textarea rows=5 cols=39 wrap=soft name=text>
244 EOF
245 my $bottom = "../bottom.txt";if(-e $bottom){open(IN, "$bottom");print while <IN>;close(IN);}
246 print <<EOF;
247 </textarea>
248 <input type=hidden name=mode value="file_edit">
249 <input type=hidden name=file value="$bottom">
250 </td></tr>
251 </form>
252 <tr><td>
253
254 <form action="$script" method=post><input type=hidden name=pass value="$FORM{'pass'}">
255 <font size=-1>ページ中央のタグ</font><input type=submit value="変更"><br>
256 <textarea rows=5 cols=39 wrap=soft name=text>
257 EOF
258 my $headad = "../headad.txt";if(-e $headad){open(IN, "$headad");print while <IN>;close(IN);}
259 print <<EOF;
260 </textarea>
261 <input type=hidden name=mode value="file_edit">
262 <input type=hidden name=file value="$headad">
263 </td>
264 </form>
265 <td>
266
267 <form action="$script" method=post><input type=hidden name=pass value="$FORM{'pass'}">
268 <font size=-1>ページ中央のタグ2</font><input type=submit value="変更"><br>
269 <textarea rows=5 cols=39 wrap=soft name=text>
270 EOF
271 my $headad2 = "../headad2.txt";if(-e $headad2){open(IN, "$headad2");print while <IN>;close(IN);}
272 print <<EOF;
273 </textarea>
274 <input type=hidden name=mode value="file_edit">
275 <input type=hidden name=file value="$headad2">
276 </td>
277 </form>
278 </tr>
279 <tr>
280 <td>
281
282 <form action="$script" method=post><input type=hidden name=pass value="$FORM{'pass'}">
283 <font size=-1>ページ一番下のタグ</font><input type=submit value="変更"><br>
284 <textarea rows=5 cols=39 wrap=soft name=text>
285 EOF
286 my $ad = "../bottom_ad.txt";if(-e $ad){open(IN, "$ad");print while <IN>;close(IN);}
287 print <<EOF;
288 </textarea>
289 <input type=hidden name=mode value="file_edit">
290 <input type=hidden name=file value="$ad">
291 </td>
292 </form>
293 <td>
294
295 <form action="$script" method=post><input type=hidden name=pass value="$FORM{'pass'}">
296 <font size=-1>掲示板一覧</font><input type=submit value="変更"><br>
297 <textarea rows=5 cols=39 wrap=soft name=text>
298 EOF
299 my $links = "../bbstable.txt";if(-e $links){open(IN, "$links");print while <IN>;close(IN);}
300 print <<EOF;
301 </textarea>
302 <input type=hidden name=mode value="file_edit">
303 <input type=hidden name=file value="$links">
304 </td></tr>
305 </form>
306 </table>
307
308 EOF
309
310 }
311
312 sub b_list {
313 $file="./board.txt";
314 if(-e $file){
315 open(IN,$file);
316 @board=<IN>;
317 close(IN);
318
319 if($board[0] !~/<>/ && @board ne 0){
320 print "board.txtが旧形式です。";
321 print "<form action=\"$script\" method=\"POST\">\n";
322 print "<input type=hidden name=\"mode\" value=\"conv1\"><input type=hidden name=pass value=\"$FORM{'pass'}\">\n";
323 print "<input type=submit name=\"submut\" value=\"変換する\">\n";
324 print "</form>\n";
325 &footer;
326 }
327
328 print "<table border=1 cellspacing=2 cellpadding=1>\n";
329
330 foreach(@board){
331 chomp($_);
332 ($path,$name,$st)=split /<>/;
333 print <<"EOF";
334
335 <tr><td><a href=\"$USERURL$path/index.html\">$name ($path)</a></td>
336 <td><form action="$script" method=post><input type=hidden name=pass value="$FORM{'pass'}"><input type=hidden name="bbs" value="$path"><input type=hidden name="mode" value="setting"><input type="submit" value="設定変更"></td></form>
337 <td><form action="./delete.cgi?bbs=$path" method="POST"><input type=hidden name=pass value="$FORM{'pass'}"><input type=submit name="button" value="記事削除"></td></form>
338 <td><a href="./remake.cgi?bbs=$path&key=0">リメイク</a>(<a href="./remake.cgi?bbs=$path">全部</a>)</td>
339 <td align="center"><form action="$script" method=post><input type=hidden name=pass value="$FORM{'pass'}"><input type=hidden name="bbs" value="$path"><input type=hidden name="mode" value="remove"><input type=hidden name="mode2" value="remove"><input type="submit" value="削除"></td></form></tr>
340 EOF
341 }
342
343 print "</table>\n";
344 }
345 }
346
347
348 #-----------------------------------------------------------make
349 sub make {
350 #データがあるなら検証
351
352 if($FORM{'mode2'} eq 'make'){
353 print <<"EOF";
354 <table border=0>
355 <tr>
356 <td align="right">
357 <form action="$script" method=POST>
358 アカウント名:
359 </td>
360 <td>
361 <input type=text name="bbs" value="" size=20>
362 </td>
363 </tr>
364 <tr>
365 <td align="right">
366 掲示板タイトル:
367 </td>
368 <td>
369 <input type=text name="BBS_TITLE" value="掲示板" size=20>
370 </td>
371 </tr>
372 <tr>
373 <td colspan=2>
374 <input type="checkbox" name="nolog" value="checked">log/を作成しない
375 </td>
376 </tr>
377 <tr>
378 <td colspan=2 align="right">
379 <input type=hidden name=pass value="$FORM{'pass'}">
380 <input type=hidden name="mode" value="make">
381 <input type=hidden name="mode2" value="make2">
382 <input type="submit" name="Submit" value="作成する!">
383 </td>
384 </tr>
385 </table>
386 </form>
387 EOF
388 &footer;exit;
389 }elsif($FORM{'mode2'} eq 'make2'){
390 #不正な文字を検証
391 if(!length($FORM{'bbs'})){
392 DispError("ERROR!","アカウント名が不正です!");
393 }
394 if($FORM{'bbs'} =~ /(\.|\/)/){
395 DispError("ERROR!","アカウント名が不正です!");
396 }
397 if($FORM{'bbs'} =~ /[^a-zA-Z0-9]/){
398 DispError("ERROR!","アカウント名が不正です!");
399 }
400 #パスワードの長さを検証
401 #if(length($FORM{'PASSWORD'})<4){
402 # DispError("ERROR!","パスワードは4文字以上にしてください!");
403 #}
404
405 #パスワード入力検査
406 #if($FORM{'PASSWORD'} ne $FORM{'PASSWORD2'}){
407 # DispError("入力エラー!","ERROR:確認用パスワードが違います!");
408 #}
409
410 #アカウント検査
411 $pass = "../" . $FORM{'bbs'};
412
413 $FORM{'PASSWORD'} = $FORM{'bbs'};
414
415 if(-e $pass){
416 DispError("ERROR!","ERROR:そのアカウントは既に使用されています!");
417 }
418
419
420 if($FORM{'BBS_TITLE'} eq ''){
421 $FORM{'BBS_TITLE'}="掲示板";
422 }
423
424
425 $pass .= $SETTINGFILE;
426
427 #掲示板フォルダ作成処理
428 $BBSURL="../" . $FORM{'bbs'};
429 mkdir($BBSURL,$p_dir);
430 chmod($p_dir,$BBSURL);
431 mkdir("$BBSURL/dat",$p_dir);
432 chmod($p_dir,"$BBSURL/dat");
433 mkdir("$BBSURL/html",$p_dir);
434 chmod($p_dir,"$BBSURL/html");
435 mkdir("$BBSURL/i",$p_dir);
436 chmod($p_dir,"$BBSURL/i");
437
438 if($FORM{'nolog'} ne "checked"){
439 mkdir("$BBSURL/log",$p_dir);
440 chmod($p_dir,"$BBSURL/log");
441 }
442
443 #セッティングファイルを作成
444 open(IN,"<./SETTING.TXT");
445 @default=<IN>;
446 close(IN);
447
448 open(FILE,">$pass");
449 eval{flock(FILE,2);};
450 print FILE "$FORM{'bbs'}@" . crypt($FORM{'PASSWORD'},$FORM{'bbs'}) . "\n";
451 foreach(@default){
452 if($_=~/^BBS_TITLE=/){print FILE "BBS_TITLE=$FORM{'BBS_TITLE'}\n";next;}
453 print FILE
454 }
455 eval{flock(FILE,8);};
456 close(FILE);
457
458 $head = "../" . $FORM{'bbs'} . "/head.txt";
459 open(FILE,">$head");
460 close(FILE);
461
462 open(IN,"<./index.txt");
463 @indext=<IN>;
464 close(IN);
465
466 $index = "../" . $FORM{'bbs'} . "/index2.html";
467 open(FILE,">$index");
468 foreach(@indext){print FILE}
469 close(FILE);
470
471 $subject = "../" . $FORM{'bbs'} . "/subject.txt";
472 open(FILE,">$subject");
473 close(FILE);
474
475 open(FILE,">>./board.txt");
476 eval{flock(FILE,2);};
477 print FILE "$FORM{'bbs'}<>掲示板<>\n";
478 eval{flock(FILE,8);};
479 close(FILE);
480
481
482 $BBSURL=$USERURL . $FORM{'bbs'} . "/";
483
484 chmod($p_txt,"$pass");
485 chmod($p_txt,"$head");
486 chmod($p_txt,"$index");
487 chmod($p_txt,"$subject");
488 chmod($p_txt,"./board.txt");
489
490 &setting;
491
492 exit;
493 }
494 }
495
496
497 #-----------------------------------------------------------setting
498 sub setting
499
500 {
501 #パスワード検証
502 my $pass = "../" . $FORM{'bbs'} . $SETTINGFILE;
503
504 #セッティングファイルを読む
505 open(FILE,$pass);
506 $str=<FILE>;
507 foreach $str (<FILE>){
508 chomp($str);
509 ($name, $value) = split(/=/, $str);
510 $value =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("C", hex($1))/eg;
511 $SETTING{$name} = $value;
512 }
513 close(FILE);
514
515 $PATH = $USERURL . $FORM{"bbs"} . "/";
516 $PATH .= "index.html";
517
518 if(!-e $PATH){print "index.htmlがありません。\n";}
519
520
521
522 #管理者メニューを表示
523 #print "Content-type: text/html; charset=shift_jis\n\n";
524 print <<"EOF";
525 <table width="650" border="1" cellspacing="0" cellpadding="0">
526 <tr>
527 <td>
528  
529 <table border="0" cellspacing="0" cellpadding="0">
530 <tr>
531 <td>
532 <form action="$script" method="POST">
533 <input type=hidden name=pass value="$FORM{'pass'}">
534  <b>掲示板管理者メニュー:<a href="$PATH" target="_blank">$FORM{'bbs'}</a></b>
535 <input type=submit name="button" value="戻る">
536 <a href="./remake.cgi?bbs=$FORM{'bbs'}" target=\"_blank\">リメイク</a>
537 </td>
538 </form>
539 </tr>
540 </table>
541 <div align="center">
542 <table width="640" border="0" cellspacing="0" cellpadding="0">
543 <tr>
544 <td width="300">
545 <form method="post" action="$script"><input type=hidden name=pass value="$FORM{'pass'}">
546 <table width="300" border="0" cellspacing="0" cellpadding="0">
547 <tr>
548 <td>
549 <div align="right">
550 <input type="submit" name="Submit" value="適用">
551 </div>
552 <table width="300" border="1" cellspacing="0" cellpadding="0">
553 <tr bgcolor="#FFCCCC">
554 <td>
555 <div align="center">掲示板タイトル</div>
556 </td>
557 <td width="150" valign="middle">
558 <div align="center">
559 <input type="text" name="BBS_TITLE" value="$SETTING{'BBS_TITLE'}">
560 </div>
561 </td>
562 </tr>
563 <tr bgcolor="#FFCCCC">
564 <td>
565 <div align="center">タイトル画像</div>
566 </td>
567 <td width="150" valign="middle">
568 <div align="center">
569 <input type="text" name="BBS_TITLE_PICTURE" value="$SETTING{'BBS_TITLE_PICTURE'}">
570 </div>
571 </td>
572 </tr>
573 <tr bgcolor="#FFCCCC">
574 <td>
575 <div align="center">タイトル色</div>
576 </td>
577 <td width="150" valign="middle">
578 <div align="center">
579 <input type="text" name="BBS_TITLE_COLOR" value="$SETTING{'BBS_TITLE_COLOR'}">
580 </div>
581 </td>
582 </tr>
583 <tr bgcolor="#FFCCCC">
584 <td>
585 <div align="center">タイトル画像のリンク</div>
586 </td>
587 <td width="150" valign="middle">
588 <div align="center">
589 <input type="text" name="BBS_TITLE_LINK" value="$SETTING{'BBS_TITLE_LINK'}">
590 </div>
591 </td>
592 </tr>
593 <tr bgcolor="#FF9999">
594 <td>
595 <div align="center">背景色</div>
596 </td>
597 <td width="150" valign="middle">
598 <div align="center">
599 <input type="text" name="BBS_BG_COLOR" value="$SETTING{'BBS_BG_COLOR'}">
600 </div>
601 </td>
602 </tr>
603 <tr bgcolor="#FF9999">
604 <td>
605 <div align="center">背景画像</div>
606 </td>
607 <td width="150" valign="middle">
608 <div align="center">
609 <input type="text" name="BBS_BG_PICTURE" value="$SETTING{'BBS_BG_PICTURE'}">
610 </div>
611 </td>
612 </tr>
613 <tr bgcolor="#FF9999">
614 <td>
615 <div align="center">新規スレッド背景色</div>
616 </td>
617 <td width="150" valign="middle">
618 <div align="center">
619 <input type="text" name="BBS_MAKETHREAD_COLOR" value="$SETTING{'BBS_MAKETHREAD_COLOR'}">
620 </div>
621 </td>
622 </tr>
623 <tr bgcolor="#FF9999">
624 <td>
625 <div align="center">スレッド一覧背景色</div>
626 </td>
627 <td width="150" valign="middle">
628 <div align="center">
629 <input type="text" name="BBS_MENU_COLOR" value="$SETTING{'BBS_MENU_COLOR'}">
630 </div>
631 </td>
632 </tr>
633 <tr bgcolor="#FF9999">
634 <td>
635 <div align="center">スレッド背景色</div>
636 </td>
637 <td width="150" valign="middle">
638 <div align="center">
639 <input type="text" name="BBS_THREAD_COLOR" value="$SETTING{'BBS_THREAD_COLOR'}">
640 </div>
641 </td>
642 </tr>
643 <tr bgcolor="#FF6666">
644 <td>
645 <div align="center">サブジェクトの標準色</div>
646 </td>
647 <td width="150" valign="middle">
648 <div align="center">
649 <input type="text" name="BBS_SUBJECT_COLOR" value="$SETTING{'BBS_SUBJECT_COLOR'}">
650 </div>
651 </td>
652 </tr>
653 <tr bgcolor="#FF6666">
654 <td>
655 <div align="center">テキストの標準色</div>
656 </td>
657 <td width="150" valign="middle">
658 <div align="center">
659 <input type="text" name="BBS_TEXT_COLOR" value="$SETTING{'BBS_TEXT_COLOR'}">
660 </div>
661 </td>
662 </tr>
663 <tr bgcolor="#FF6666">
664 <td>
665 <div align="center">名前の色</div>
666 </td>
667 <td width="150" valign="middle">
668 <div align="center">
669 <input type="text" name="BBS_NAME_COLOR" value="$SETTING{'BBS_NAME_COLOR'}">
670 </div>
671 </td>
672 </tr>
673 <tr bgcolor="#FF6666">
674 <td>
675 <div align="center">リンクの標準色</div>
676 </td>
677 <td width="150" valign="middle">
678 <div align="center">
679 <input type="text" name="BBS_LINK_COLOR" value="$SETTING{'BBS_LINK_COLOR'}">
680 </div>
681 </td>
682 </tr>
683 <tr bgcolor="#FF6666">
684 <td>
685 <div align="center">選択中のリンク色</div>
686 </td>
687 <td width="150" valign="middle">
688 <div align="center">
689 <input type="text" name="BBS_ALINK_COLOR" value="$SETTING{'BBS_ALINK_COLOR'}">
690 </div>
691 </td>
692 </tr>
693 <tr bgcolor="#FF6666">
694 <td>
695 <div align="center">訪問済みのリンク色</div>
696 </td>
697 <td width="150" valign="middle">
698 <div align="center">
699 <input type="text" name="BBS_VLINK_COLOR" value="$SETTING{'BBS_VLINK_COLOR'}">
700 </div>
701 </td>
702 </tr>
703
704 <tr bgcolor="#7FFF7F">
705 <td>
706 <div align="center">gzip圧縮を使用する</div>
707 </td>
708 <td width="150" valign="middle">
709 <div align="left">
710 <input type="checkbox" name="BBS_GZIP_CHECK" value="checked" $SETTING{'BBS_GZIP_CHECK'}>
711 (する場合チェック)</div>
712 </td>
713 </tr>
714 <tr bgcolor="#7FFF7F">
715 <td>
716 <div align="center">gzipのパス</div>
717 </td>
718 <td width="150" valign="middle">
719 <div align="center">
720 <input type="text" name="BBS_GZIP_PATH" value=$SETTING{'BBS_GZIP_PATH'}>
721 </div>
722 </td>
723 </tr>
724
725 <tr bgcolor="#7FCC7F">
726 <td>
727 <div align="center">Locationを使用する</div>
728 </td>
729 <td width="150" valign="middle">
730 <div align="left">
731 <input type="checkbox" name="BBS_LOCATION_CHECK" value="checked" $SETTING{'BBS_LOCATION_CHECK'}>
732 (する場合チェック)</div>
733 </td>
734 </tr>
735 <tr bgcolor="#7FCC7F">
736 <td>
737 <div align="center">書き込みウェイトの秒数</div>
738 </td>
739 <td width="150" valign="middle">
740 <div align="center">
741 <input type="text" name="BBS_WAIT_MINUTE" value=$SETTING{'BBS_WAIT_MINUTE'}>
742 <br>※Location不使用の<br>ときのみ有効</div>
743 </td>
744 </tr>
745
746 <tr bgcolor="#7F997F">
747 <td>
748 <div align="center">レスの最大書き込み数</div>
749 </td>
750 <td width="150" valign="middle">
751 <div align="center">
752 <input type="text" name="BBS_MAX_RES_COUNT" value=$SETTING{'BBS_MAX_RES_COUNT'}></div>
753 </td>
754 </tr>
755 <tr bgcolor="#7F997F">
756 <td>
757 <div align="center">レスの最大サイズ(KB)</div>
758 </td>
759 <td width="150" valign="middle">
760 <div align="center">
761 <input type="text" name="BBS_MAX_RES_SIZE" value=$SETTING{'BBS_MAX_RES_SIZE'}></div>
762 </td>
763 </tr>
764
765 <tr bgcolor="#CCCCCC">
766 <td>
767 <center>
768 UNICODEチェック
769 </center>
770 </td>
771 <td width="150" valign="middle">
772 EOF
773 if($SETTING{'BBS_UNICODE'} eq "change"){
774 print <<EOF;
775 <input type="radio" name="BBS_UNICODE" value="change" checked>
776 する<br>
777 <input type="radio" name="BBS_UNICODE" value="pass">
778 しない</td>
779 EOF
780 }else{
781 print <<EOF;
782 <input type="radio" name="BBS_UNICODE" value="change">
783 する<br>
784 <input type="radio" name="BBS_UNICODE" value="pass" checked>
785 しない</td>
786 EOF
787 }
788 print <<EOF;
789 </tr>
790
791
792 <tr bgcolor="#CCCCCC">
793 <td>
794 <div align="center">連続投稿規制</div>
795 </td>
796 <td width="150" valign="middle">
797 <div align="center">
798 <input type="text" name="timecount" value="$SETTING{'timecount'}"><br>
799 回中
800 <input type="text" name="timeclose" value="$SETTING{'timeclose'}"><br>
801 回以上で規制
802 </div>
803 </td>
804 </tr>
805
806 <tr bgcolor="#CCCCCC">
807 <td>
808 <div align="center">1ページ中のスレッド数</div>
809 </td>
810 <td width="150" valign="middle">
811 <div align="center">
812 <input type="text" name="BBS_THREAD_NUMBER" value="$SETTING{'BBS_THREAD_NUMBER'}">
813 </div>
814 </td>
815 </tr>
816 <tr bgcolor="#CCCCCC">
817 <td>
818 <div align="center">列挙する書き込み数</div>
819 </td>
820 <td width="150" valign="middle">
821 <div align="center">
822 <input type="text" name="BBS_CONTENTS_NUMBER" value="$SETTING{'BBS_CONTENTS_NUMBER'}">
823 </div>
824 </td>
825 </tr>
826 <tr bgcolor="#CCCCCC">
827 <td>
828 <div align="center">メニューのスレッド数</div>
829 </td>
830 <td width="150" valign="middle">
831 <div align="center">
832 <input type="text" name="BBS_MAX_MENU_THREAD" value="$SETTING{'BBS_MAX_MENU_THREAD'}">
833 </div>
834 </td>
835 </tr>
836 <tr bgcolor="#CCCCCC">
837 <td>
838 <div align="center">書き込みの行数制限</div>
839 </td>
840 <td width="150" valign="middle">
841 <div align="center">
842 <input type="text" name="BBS_LINE_NUMBER" value="$SETTING{'BBS_LINE_NUMBER'}">
843 </div>
844 </td>
845 </tr>
846 <tr bgcolor="#CCCCCC">
847 <td>
848 <div align="center">サブジェクトの文字数制限</div>
849 </td>
850 <td width="150" valign="middle">
851 <div align="center">
852 <input type="text" name="BBS_SUBJECT_COUNT" value="$SETTING{'BBS_SUBJECT_COUNT'}">
853 </div>
854 </td>
855 </tr>
856 <tr bgcolor="#CCCCCC">
857 <td>
858 <div align="center">名前の文字数制限</div>
859 </td>
860 <td width="150" valign="middle">
861 <div align="center">
862 <input type="text" name="BBS_NAME_COUNT" value="$SETTING{'BBS_NAME_COUNT'}">
863 </div>
864 </td>
865 </tr>
866 <tr bgcolor="#CCCCCC">
867 <td>
868 <div align="center">メールの文字数制限</div>
869 </td>
870 <td width="150" valign="middle">
871 <div align="center">
872 <input type="text" name="BBS_MAIL_COUNT" value="$SETTING{'BBS_MAIL_COUNT'}">
873 </div>
874 </td>
875 </tr>
876 <tr bgcolor="#CCCCCC">
877 <td>
878 <div align="center">本文の文字数制限</div>
879 </td>
880 <td width="150" valign="middle">
881 <div align="center">
882 <input type="text" name="BBS_MESSAGE_COUNT" value="$SETTING{'BBS_MESSAGE_COUNT'}">
883 </div>
884 </td>
885 </tr>
886 <tr bgcolor="#CCCCCC">
887 <td>
888 <div align="center">スレッド立て待ち数</div>
889 </td>
890 <td width="150" valign="middle">
891 <div align="center">
892 <input type="text" name="BBS_THREAD_TATESUGI" value="$SETTING{'BBS_THREAD_TATESUGI'}">
893 </div>
894 </td>
895 </tr>
896 <tr bgcolor="#CCCCCC">
897 <td>
898 <div align="center">名前未入力時の名前</div>
899 </td>
900 <td width="150" valign="middle">
901 <div align="center">
902 <input type="text" name="BBS_NONAME_NAME" value=$SETTING{'BBS_NONAME_NAME'}>
903 </div>
904 </td>
905 </tr>
906 <tr bgcolor="#CCCCCC">
907 <td>
908 <div align="center">名前未入力時の名前<br>(かちゅ〜しゃ使用者)</div>
909 </td>
910 <td width="150" valign="middle">
911 <div align="center">
912 <input type="text" name="BBS_NONAME_NAME_KA" value=$SETTING{"BBS_NONAME_NAME_KA"}>
913 </div>
914 </td>
915 </tr>
916 <tr bgcolor="#CCCCCC">
917 <td>
918 <div align="center">削除投稿の名前</div>
919 </td>
920 <td width="150" valign="middle">
921 <div align="center">
922 <input type="text" name="BBS_DELETE_NAME" value=$SETTING{'BBS_DELETE_NAME'}>
923 </div>
924 </td>
925 </tr>
926 <tr bgcolor="#CCCCCC">
927 <td>
928 <div align="center">管理者のID</div>
929 </td>
930 <td width="150" valign="middle">
931 <div align="center">
932 <input type="text" name="BBS_ADMIN_ID" value=$SETTING{'BBS_ADMIN_ID'}>
933 </div>
934 </td>
935 </tr>
936 <tr bgcolor="#CCCCCC">
937 <td>
938 <div align="center">IDを置換する<br>管理者のハンドル</div>
939 </td>
940 <td width="150" valign="middle">
941 <div align="center">
942 <input type="text" name="BBS_ADMIN_NAME" value=$SETTING{'BBS_ADMIN_NAME'}>
943 </div>
944 </td>
945 </tr>
946 <tr bgcolor="#b0b0b0">
947 <td>
948 <center>
949 旧暦の表\示<br>(<a href="http://www3.biwako.ne.jp/~nobuaki/qreki/" target="_blank">qreki.pl</a>が必要)
950 </center>
951 </td>
952 <td width="150" valign="middle">
953 <input type="checkbox" name="BBS_LUNISOLAR_CALENDAR" value="checked" $SETTING{'BBS_LUNISOLAR_CALENDAR'}>
954 (する場合チェック) </td>
955 </tr>
956 <tr bgcolor="#b0b0b0">
957 <td>
958 <center>
959 世界暦の表\示
960 </center>
961 </td>
962 <td width="150" valign="middle">
963 <input type="checkbox" name="BBS_WORLD_CALENDAR" value="checked" $SETTING{'BBS_WORLD_CALENDAR'}>
964 (する場合チェック) </td>
965 </tr>
966 <tr bgcolor="#b0b0b0">
967 <td>
968 <center>
969 十\進暦の表\示
970 </center>
971 </td>
972 <td width="150" valign="middle">
973 <input type="checkbox" name="BBS_DECIMAL_CALENDAR" value="checked" $SETTING{'BBS_DECIMAL_CALENDAR'}>
974 (する場合チェック) </td>
975 </tr>
976 <tr bgcolor="#999999">
977 <td>
978 <center>
979 ひらがな⇔カタカナ変換
980 </center>
981 </td>
982 <td width="150" valign="middle">
983 <input type="checkbox" name="BBS_HIRAKATA_CHECK" value="checked" $SETTING{'BBS_HIRAKATA_CHECK'}>
984 (する場合チェック) </td>
985 </tr>
986 <tr bgcolor="#999999">
987 <td>
988 <center>
989 名前クッキーを発行
990 </center>
991 </td>
992 <td width="150" valign="middle">
993 <input type="checkbox" name="BBS_NAMECOOKIE_CHECK" value="checked" $SETTING{'BBS_NAMECOOKIE_CHECK'}>
994 (する場合チェック) </td>
995 </tr>
996 <tr bgcolor="#999999">
997 <td>
998 <center>
999 メールクッキーを発行
1000 </center>
1001 </td>
1002 <td width="150" valign="middle">
1003 <input type="checkbox" name="BBS_MAILCOOKIE_CHECK" value="checked" $SETTING{'BBS_MAILCOOKIE_CHECK'}>
1004 (する場合チェック) </td>
1005 </tr>
1006 <tr bgcolor="#999999">
1007 <td>
1008 <div align="center">名無しさん投稿を排除</div>
1009 </td>
1010 <td width="150" valign="middle">
1011 <div align="left">
1012 EOF
1013 if($SETTING{"NANASHI_CHECK"} eq 1){
1014 print <<EOF;
1015 <input type="checkbox" name="NANASHI_CHECK" value="1" checked>
1016 EOF
1017 }else{
1018 print <<EOF;
1019 <input type="checkbox" name="NANASHI_CHECK" value="1">
1020 EOF
1021 }
1022 print <<EOF;
1023 (する場合チェック)</div>
1024 </td>
1025 </tr>
1026 <tr bgcolor="#999999">
1027 <td>
1028 <center>
1029 スレッド作成画面を<br>別画面へ
1030 </center>
1031 </td>
1032 <td width="150" valign="middle">
1033 <input type="checkbox" name="BBS_PASSWORD_CHECK" value="checked" $SETTING{'BBS_PASSWORD_CHECK'}>
1034 (する場合チェック) </td>
1035 </tr>
1036 <tr bgcolor="#999999">
1037 <td>
1038 <div align="center">スレ作成確認表\示</div>
1039 </td>
1040 <td width="150" valign="middle">
1041 <div align="left">
1042 EOF
1043 if($SETTING{"BBS_NEWSUBJECT"} eq 1){
1044 print <<EOF;
1045 <input type="checkbox" name="BBS_NEWSUBJECT" value="1" checked>
1046 EOF
1047 }else{
1048 print <<EOF;
1049 <input type="checkbox" name="BBS_NEWSUBJECT" value="1">
1050 EOF
1051 }
1052 print <<EOF;
1053 (する場合チェック)</div>
1054 </td>
1055 </tr>
1056 <tr bgcolor="#999999">
1057 <td>
1058 <div align="center">クッキーをオンにしてちょ。</div>
1059 </td>
1060 <td width="150" valign="middle">
1061 <div align="left">
1062 EOF
1063 if($SETTING{"SUBBBS_CGI_ON"} eq 1){
1064 print <<EOF;
1065 <input type="checkbox" name="SUBBBS_CGI_ON" value="1" checked>
1066 EOF
1067 }else{
1068 print <<EOF;
1069 <input type="checkbox" name="SUBBBS_CGI_ON" value="1">
1070 EOF
1071 }
1072 print <<EOF;
1073 (する場合チェック)</div>
1074 </td>
1075 </tr>
1076 <tr bgcolor="#999999">
1077 <td>
1078 <center>
1079 IDを使用しない
1080 </center>
1081 </td>
1082 <td width="150" valign="middle">
1083 <input type="checkbox" name="BBS_NO_ID" value="checked" $SETTING{'BBS_NO_ID'}>
1084 (する場合チェック) </td>
1085 </tr>
1086 <tr bgcolor="#999999">
1087 <td>
1088 <center>
1089 ID強制表\示
1090 </center>
1091 </td>
1092 <td width="150" valign="middle">
1093 <input type="checkbox" name="BBS_FORCE_ID" value="checked" $SETTING{'BBS_FORCE_ID'}>
1094 (する場合チェック) </td>
1095 </tr>
1096 <tr bgcolor="#999999">
1097 <td>
1098 <div align="center">PROXY制限</div>
1099 </td>
1100 <td width="150" valign="middle">
1101 <div align="left">
1102 <input type="checkbox" name="BBS_PROXY_CHECK" value="checked" $SETTING{'BBS_PROXY_CHECK'}>
1103 (する場合チェック) </div>
1104 </td>
1105 </tr>
1106 <tr bgcolor="#999999">
1107 <td>
1108 <div align="center">海外からの書き込み規制</div>
1109 </td>
1110 <td width="150" valign="middle">
1111 <div align="left">
1112 <input type="checkbox" name="BBS_OVERSEA_PROXY" value="checked" $SETTING{'BBS_OVERSEA_PROXY'}>
1113 (する場合チェック) </div>
1114 </td>
1115 </tr>
1116 <tr bgcolor="#999999">
1117 <td>
1118 <div align="center">海外からの<br>スレッド立て禁止</div>
1119 </td>
1120 <td width="150" valign="middle">
1121 <div align="left">
1122 <input type="checkbox" name="BBS_OVERSEA_THREAD" value="checked" $SETTING{'BBS_OVERSEA_THREAD'}>
1123 (する場合チェック) </div>
1124 </td>
1125 </tr>
1126 <tr bgcolor="#999999">
1127 <td>
1128 <div align="center">IPを公開する</div>
1129 </td>
1130 <td width="150" valign="middle">
1131 <div align="left">
1132 <input type="checkbox" name="BBS_DISP_IP" value="checked" $SETTING{'BBS_DISP_IP'}>
1133 (する場合チェック)</div>
1134 </td>
1135 </tr>
1136
1137 </table>
1138 <div align="right">
1139 <input type="hidden" name="mode" value="setting1">
1140 <input type="hidden" name="bbs" value=$FORM{'bbs'}>
1141 <input type="hidden" name="PASSWORD" value=$FORM{'PASSWORD'}>
1142 <input type="submit" name="Submit" value="適用">
1143 </div>
1144 </td>
1145 </tr>
1146 </table>
1147 </form>
1148 </td>
1149 <TD width=300 ALIGN="right" VALIGN="top">
1150 <form method="post" action="$script"><input type=hidden name=pass value="$FORM{'pass'}">
1151 <table width="300" border="0" cellspacing="0" cellpadding="0">
1152 <tr>
1153 <td>
1154 <table width="300" border="1" cellspacing="0" cellpadding="0">
1155
1156 <tr bgcolor="#CCCCCC">
1157 <td colspan=2><b>掲示板のヘッダ</b></td>
1158 </tr>
1159 <tr bgcolor="#CCCCCC">
1160 <td>
1161 <textarea rows=5 cols=39 wrap=OFF name=text>
1162 EOF
1163
1164 my $head = "../" . $FORM{'bbs'} . "/head.txt";if(-e $head){open(IN, "$head");print while <IN>;close(IN);}
1165
1166 print <<EOF;
1167 </textarea>
1168 </td>
1169 </tr>
1170 </table>
1171 <div align="right">
1172 <input type="hidden" name="mode" value="file_edit">
1173 <input type=hidden name=file value="$head">
1174
1175 <input type="hidden" name="bbs" value=$FORM{'bbs'}>
1176 <input type="hidden" name="PASSWORD" value=$FORM{'PASSWORD'}>
1177 <input type="submit" name="Submit" value="適用">
1178 </div>
1179 </form>
1180 </td>
1181 </tr>
1182
1183 <tr>
1184 <TD width=300 ALIGN="right" VALIGN="top">
1185 <form method="post" action="$script"><input type=hidden name=pass value="$FORM{'pass'}">
1186 <table width="300" border="0" cellspacing="0" cellpadding="0">
1187 <tr>
1188 <td>
1189 <table width="300" border="1" cellspacing="0" cellpadding="0">
1190 <tr bgcolor="#CCCCCC">
1191 <td colspan=2><font size=2><b>ユーザー設定が異常です!</b></font></td>
1192 </tr>
1193 <tr bgcolor="#CCCCCC">
1194 <td><textarea rows=5 cols=39 wrap=OFF name=text>
1195 EOF
1196 my $uerror = "../" . $FORM{'bbs'} . "/uerror.cgi";if(-e $uerror){open(IN, "$uerror");print while <IN>;close(IN);}
1197 print <<EOF;
1198 </textarea>
1199 </td>
1200 </tr>
1201 </table>
1202 <div align="right">
1203 <input type="hidden" name="mode" value="file_edit">
1204 <input type=hidden name=file value="$uerror">
1205
1206 <input type="hidden" name="bbs" value=$FORM{'bbs'}>
1207 <input type="hidden" name="PASSWORD" value=$FORM{'PASSWORD'}>
1208 <input type="submit" name="Submit" value="適用">
1209 </div>
1210 </form>
1211 </td>
1212 </tr>
1213
1214 <tr>
1215 <TD width=300 ALIGN="right" VALIGN="top">
1216 <form method="post" action="$script"><input type=hidden name=pass value="$FORM{'pass'}">
1217 <table width="300" border="0" cellspacing="0" cellpadding="0">
1218 <tr>
1219 <td>
1220 <table width="300" border="1" cellspacing="0" cellpadding="0">
1221 <tr bgcolor="#CCCCCC">
1222 <td colspan=2><font size=2><b>リモートホストを公開します。</b></font></td>
1223 </tr>
1224 <tr bgcolor="#CCCCCC">
1225 <td><textarea rows=5 cols=39 wrap=OFF name=text>
1226 EOF
1227 my $chubo = "../" . $FORM{'bbs'} . "/chubo.cgi";if(-e $chubo){open(IN, "$chubo");print while <IN>;close(IN);}
1228 print <<EOF;
1229 </textarea>
1230 </td>
1231 </tr>
1232 </table>
1233 <div align="right">
1234 <input type="hidden" name="mode" value="file_edit">
1235 <input type=hidden name=file value="$chubo">
1236
1237 <input type="hidden" name="bbs" value=$FORM{'bbs'}>
1238 <input type="hidden" name="PASSWORD" value=$FORM{'PASSWORD'}>
1239 <input type="submit" name="Submit" value="適用">
1240 </div>
1241 </td>
1242 </tr>
1243 </table>
1244 </form>
1245 </td>
1246 </tr>
1247
1248 <tr>
1249 <TD width=300 ALIGN="right" VALIGN="top">
1250 <form method="post" action="$script"><input type=hidden name=pass value="$FORM{'pass'}">
1251 <table width="300" border="0" cellspacing="0" cellpadding="0">
1252 <tr>
1253 <td>
1254 <table width="300" border="1" cellspacing="0" cellpadding="0">
1255 <tr bgcolor="#CCCCCC">
1256 <td colspan=2><font size=2><b>管理人から警告します。</b></font></td>
1257 </tr>
1258 <tr bgcolor="#CCCCCC">
1259 <td><textarea rows=5 cols=39 wrap=OFF name=text>
1260 EOF
1261 my $keikoku = "../" . $FORM{'bbs'} . "/keikoku.cgi";if(-e $keikoku){open(IN, "$keikoku");print while <IN>;close(IN);}
1262 print <<EOF;
1263 </textarea>
1264 </td>
1265 </tr>
1266 </table>
1267 <div align="right">
1268 <input type="hidden" name="mode" value="file_edit">
1269 <input type=hidden name=file value="$keikoku">
1270
1271 <input type="hidden" name="bbs" value=$FORM{'bbs'}>
1272 <input type="hidden" name="PASSWORD" value=$FORM{'PASSWORD'}>
1273 <input type="submit" name="Submit" value="適用">
1274 </div>
1275 </td>
1276 </tr>
1277 </table>
1278 </form>
1279 </td>
1280 </tr>
1281
1282 <tr>
1283 <TD width=300 ALIGN="right" VALIGN="top">
1284 <form method="post" action="$script"><input type=hidden name=pass value="$FORM{'pass'}">
1285 <table width="300" border="0" cellspacing="0" cellpadding="0">
1286 <tr>
1287 <td>
1288 <table width="300" border="1" cellspacing="0" cellpadding="0">
1289 <tr bgcolor="#CCCCCC">
1290 <td colspan=2><font size=2><b>個別の規制(key<>host)</b></font></td>
1291 </tr>
1292 <tr bgcolor="#CCCCCC">
1293 <td><textarea rows=5 cols=39 wrap=OFF name=text>
1294 EOF
1295 my $arashi = "../" . $FORM{'bbs'} . "/arashi.cgi";if(-e $arashi){open(IN, "$arashi");print while <IN>;close(IN);}
1296 print <<EOF;
1297 </textarea>
1298 </td>
1299 </tr>
1300 </table>
1301 <div align="right">
1302 <input type="hidden" name="mode" value="file_edit">
1303 <input type=hidden name=file value="$arashi">
1304
1305 <input type="hidden" name="bbs" value=$FORM{'bbs'}>
1306 <input type="hidden" name="PASSWORD" value=$FORM{'PASSWORD'}>
1307 <input type="submit" name="Submit" value="適用">
1308 </div>
1309 </td>
1310 </tr>
1311 </table>
1312 </form>
1313 </td>
1314 </tr>
1315
1316 <tr>
1317 <TD width=300 ALIGN="right" VALIGN="top">
1318 <form method="post" action="$script"><input type=hidden name=pass value="$FORM{'pass'}">
1319 <table width="300" border="0" cellspacing="0" cellpadding="0">
1320 <tr>
1321 <td>
1322 <table width="300" border="1" cellspacing="0" cellpadding="0">
1323 <tr bgcolor="#CCCCCC">
1324 <td colspan=2><font size=2><b>NGワードの設定</b></font></td>
1325 </tr>
1326 <tr bgcolor="#CCCCCC">
1327 <td><textarea rows=5 cols=39 wrap=OFF name=text>
1328 EOF
1329 my $ngword = "../" . $FORM{'bbs'} . "/ngword.cgi";if(-e $ngword){open(IN, "$ngword");print while <IN>;close(IN);}
1330 print <<EOF;
1331 </textarea>
1332 </td>
1333 </tr>
1334 </table>
1335 <div align="right">
1336 <input type="hidden" name="mode" value="file_edit">
1337 <input type=hidden name=file value="$ngword">
1338
1339 <input type="hidden" name="bbs" value=$FORM{'bbs'}>
1340 <input type="hidden" name="PASSWORD" value=$FORM{'PASSWORD'}>
1341 <input type="submit" name="Submit" value="適用">
1342 </div>
1343 </td>
1344 </tr>
1345 </table>
1346 </form>
1347 </TD>
1348 </tr>
1349 </table>
1350 </div>
1351 </td>
1352 </tr>
1353 </table>
1354 </td>
1355 </tr>
1356 </table>
1357 </tr>
1358 </table>
1359 EOF
1360 &footer;
1361 }
1362
1363 #-----------------------------------------------------------setting1
1364 sub setting1 {
1365 $file = "../" . $FORM{'bbs'} . $SETTINGFILE;
1366
1367 open(FILE,"<./board.txt");
1368 @board = <FILE>;
1369 close(FILE);
1370 open(FILE,">./board.txt");
1371 eval{flock(FILE,2)};
1372 foreach(@board){
1373 chop($_);
1374 ($path,$name,$st)=split /<>/;
1375 if($FORM{'bbs'} eq $path){$name=$FORM{'BBS_TITLE'};}
1376 print FILE "$path<>$name<>$st\n";
1377 }
1378 eval{flock(FILE,8)};
1379 close(FILE);
1380
1381 #パスワード通過後
1382 open(FILE,"<$file");
1383 $first = <FILE>;
1384 close(FILE);
1385
1386 open(FILE,">$file");
1387 eval{flock(FILE,2);};
1388 print FILE $first;
1389 foreach $str (@SAVEKEY){
1390 print FILE "$str=" . $FORM{"$str"} . "\n";
1391 }
1392 eval{flock(FILE,8);};
1393 close(FILE);
1394
1395 chmod($p_txt,"./board.txt");
1396 chmod($p_txt,"$file");
1397
1398
1399 &jump;
1400 }
1401
1402
1403
1404 sub pass_change {
1405 if($FORM{'pass'} ne $FORM{'password0'}){DispError("ERROR","旧パスワードが違います!");}
1406 if($FORM{'password1'} ne $FORM{'password2'}){DispError("ERROR","新パスワードが違います!");}
1407 $chk = crypt($FORM{'password1'},$salt);
1408 open (FILE,">$pass_file");
1409 eval{flock(FILE,2);};
1410 print FILE $chk;
1411 eval{flock(FILE,8);};
1412 close(FILE);
1413 chmod($p_txt,"$pass_file");
1414
1415 $FORM{'pass'} = $FORM{'password1'};
1416 if($cookie{'pass'}){
1417 my $exp = 24 * 60 * 60; $exp *= 30;
1418 my($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = gmtime(time + $exp);
1419 $wday = ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday')[$wday];
1420 $mon = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec')[$mon];
1421 $year = $year+1900;$mday = "0$mday" if ($mday < 10);
1422 $expires = "$wday, $mday-$mon-$year 00:00:00 GMT";
1423 print "Set-Cookie: pass=$FORM{'pass'}; expires=$expires; path=/\n";
1424 }
1425 &header;
1426 print <<"EOF";
1427 変更完了。
1428 <form action="$script" method="POST"><input type=hidden name=pass value="$FORM{'pass'}"><input type=submit name="button" value="戻る"></form>
1429 EOF
1430 &footer;
1431 }
1432
1433 sub file_edit {
1434 open(FILE,">$FORM{'file'}");
1435 eval{flock(FILE,2);};
1436 print FILE $FORM{'text'};
1437 eval{flock(FILE,8);};
1438 close(FILE);
1439 chmod($p_txt,$FORM{'file'});
1440 if($FORM{'file'}=~/head.txt$/){
1441 if ($SETTING{'BBS_LOCATION_CHECK'} eq 'checked') {
1442 print "Location: ./remake.cgi?bbs=$FORM{'bbs'}&key=0\n\n";
1443 } else {
1444 print "Content-Type: text/html; charset=shift_jis\n\n";
1445 print <<EOF;
1446 <html><head>
1447 <title>変更中</title>
1448 <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
1449 <META content=0;URL=./remake.cgi?bbs=$FORM{'bbs'}&key=0 http-equiv=refresh></head>
1450 <body bgcolor=#EEEEEE>
1451 変更中
1452 </body></html>
1453 EOF
1454 }
1455 exit;
1456 }
1457 &header;
1458 if($FORM{'file'}=~/(uerror|chubo|keikoku|arashi|ngword)\.cgi$/){&setting;}
1459
1460 &setting_all;&footer;
1461 exit;
1462 }
1463
1464 sub conv1 {
1465 open(I,"./board.txt");@b=<I>;close(I);for(@b){chop($_);
1466 open(F,"../$_/SETTING.TXT");for$s(<F>){chop($s);($n,$v)=split/=/,$s;
1467 $T{$n}=$v}close(F);$S{$_}="$_<>$T{BBS_TITLE}<>\n"}open(F,">./board.txt");
1468 for(@b){chomp($_);print F $S{$_}}close(F);chmod($p_txt,"./board.txt");
1469
1470 print <<"EOF";
1471 変換完了。
1472 <form action="$script" method="POST"><input type=hidden name=pass value="$FORM{'pass'}"><input type=submit name="button" value="戻る"></form>
1473 EOF
1474 }
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487 #-----------------------------------------------------------cap
1488 sub cap {
1489 #キャップ→帽子→偽り防止
1490 open(IN,"../caps.cgi");
1491 @list = <IN>;
1492 close(IN);
1493
1494 $fll=0;
1495 #---------------追加
1496 if($FORM{'mode2'} eq "add"){
1497 $fll=1;
1498 if($FORM{'name'} eq ""){
1499 DispError("ERROR!","名前が入力されていません!")
1500 }
1501 if($FORM{'password'} eq ""){
1502 DispError("ERROR!","パスが入力されていません!")
1503 }
1504 foreach (@list) {
1505 chomp($_);
1506 my ($id,$name,$pass) = split (/<>/);
1507
1508 if($FORM{'name'} eq $name) {
1509 DispError ("ERROR!","その名前は既に使用されています!")
1510 }
1511 if($FORM{'password'} eq $pass) {
1512 DispError ("ERROR!","そのパスは既に使用されています!")
1513 }
1514 }
1515
1516 open(OUT,">>../caps.cgi");
1517 eval{flock(OUT,2);};
1518 print OUT "$FORM{'time'}<>$FORM{'name'}<>$FORM{'password'}<>$FORM{'memo'}\n";
1519 eval{flock(OUT,8);};
1520 close(OUT);
1521 chmod($p_txt,"../caps.cgi");
1522
1523 }
1524 #---------------編集
1525 elsif($FORM{'mode2'} eq "edit"){
1526 $fll=1;
1527 foreach(@list){
1528 ($id,$name,$pass) = split(/<>/,$_);
1529 if($FORM{'id'} eq $id){
1530 $cap="$FORM{'id'}<>$FORM{'name'}<>$FORM{'password'}<>$FORM{'memo'}\n";
1531 }else{
1532 $cap=$_;
1533 }
1534 push(@caplist,$cap);
1535 }
1536
1537 open(OUT,">../caps.cgi");
1538 eval{flock(OUT,2);};
1539 foreach (@caplist){print OUT $_;}
1540 eval{flock(OUT,8);};
1541 close(OUT);
1542 chmod($p_txt,"../caps.cgi");
1543 }
1544 #---------------削除1
1545 elsif($FORM{'mode2'} eq "del"){
1546 print <<"EOF";
1547
1548 <form action="$script" method="POST"><input type=hidden name=pass value="$FORM{'pass'}">
1549 <input type=hidden name="mode" value="cap">
1550 <input type=submit name="button" value="戻る">
1551 </form>
1552
1553 <table border=1 cellspacing=2 cellpadding=3>
1554 <form action="$script" method="POST"><input type=hidden name=pass value="$FORM{'pass'}">
1555 <input type=hidden name="mode" value="cap">
1556 <input type=hidden name="mode2" value="del2">
1557 <input type=submit value="削除">
1558
1559 <tr><th>&nbsp</th><th>キャップID</th><th>名前</th><th>メモ</th></tr>
1560 EOF
1561
1562
1563 foreach (@list) {
1564 chomp($_);
1565 my ($id,$name,$pass,$memo) = split (/<>/);
1566 print <<"EOF"
1567 <tr><td><input type="checkbox" name="$id" value="1"></td><td>$id</td>
1568 <td>$name</td><td>$memo</td>
1569 </tr>
1570 EOF
1571 }
1572
1573 print <<"EOF";
1574 </table>
1575 </form>
1576 EOF
1577 &footer;
1578 }
1579
1580 #---------------削除2
1581 elsif($FORM{'mode2'} eq "del2"){
1582 $fll=1;
1583 foreach(@list){
1584 ($id,$name,$pass) = split(/<>/,$_);
1585 if($FORM{$id} ne "1"){push(@caplist,$_);}
1586 }
1587
1588 open(OUT,">../caps.cgi");
1589 eval{flock(OUT,2);};
1590 foreach (@caplist){print OUT $_;}
1591 eval{flock(OUT,8);};
1592 close(OUT);
1593 chmod($p_txt,"../caps.cgi");
1594 }
1595 #---------------それ以外
1596
1597 if($fll eq 1){
1598 chmod($p_txt,"../caps.cgi");
1599 print <<"EOF";
1600 処理完了<form action="$script" method="POST"><input type=hidden name=pass value="$FORM{'pass'}">
1601 <input type=hidden name="mode" value="cap">
1602 <input type=submit name="button" value="戻る">
1603 </form>
1604 EOF
1605 &footer;
1606 }
1607
1608 #########キャップ管理メニュー
1609 print <<"EOF";
1610
1611 <table border=0 cellspacing=0 cellpadding=0>
1612 <tr><td>
1613 <form action="$script" method="POST"><input type=hidden name=pass value="$FORM{'pass'}">
1614 <input type=submit name="button" value="戻る">
1615 </td></form>
1616 <td><form action="$script" method="POST"><input type=hidden name=pass value="$FORM{'pass'}">
1617 <input type=hidden name="mode" value="cap">
1618 <input type=hidden name="mode2" value="del">
1619 |<input type=submit value="削除">
1620 </td></form></tr>
1621 </table>
1622
1623 <hr>
1624 <table border=0 cellspacing=0 cellpadding=0><tr>
1625 <td><form action="$script" method="POST"><input type=hidden name=pass value="$FORM{'pass'}">
1626
1627
1628 <table border=0 cellspacing=0 cellpadding=0>
1629 <tr><td align=right>新規キャップ 名前:</td><td><input type=text name="name"></td>
1630 <td align=right> パス:</td><td><input type=text name="password"></td>
1631 <td align=right> メモ:</td><td><input type=text name="memo"></td>
1632 <td align=right><input type=submit value="追加"></td></tr>
1633 <input type=hidden name="mode" value="cap">
1634 <input type=hidden name="mode2" value="add">
1635 <input type=hidden name="time" value="$NOWTIME">
1636 </td></form>
1637
1638 </tr></table>
1639 <hr>
1640
1641
1642
1643 <table border=1 cellspacing=2 cellpadding=3>
1644 <tr><th>キャップID</th><th>名前・パス</th><th>メモ</th></tr>
1645 EOF
1646
1647
1648 foreach (@list) {
1649 chomp($_);
1650 my ($id,$name,$pass,$memo) = split (/<>/);
1651 print <<"EOF"
1652 <tr><td>$id</td>
1653
1654 <td>
1655 <form action="$script" method="POST"><input type=hidden name=pass value="$FORM{'pass'}">
1656
1657 名前:<input type=text name="name" value="$name">
1658 パス:<input type=text name="password" value="$pass">
1659 <input type=submit value="変更">
1660 <input type=hidden name="mode" value="cap">
1661 <input type=hidden name="mode2" value="edit">
1662 <input type=hidden name="id" value="$id">
1663 </td>
1664 <td>
1665 メモ:<input type=text name="memo" value="$memo">
1666 </td>
1667 </form>
1668 </tr>
1669 EOF
1670 }
1671
1672 print <<"EOF";
1673 </table>
1674 </td></tr></table>
1675 EOF
1676 &footer;
1677 }
1678
1679
1680
1681
1682
1683 sub del_cookie {
1684 print "Set-Cookie: pass=; expires=0; path=/\n";
1685 &header;
1686 print <<"EOF";
1687 完了。
1688 <form action="$script" method="POST">
1689 <input type=hidden name=pass value="$FORM{'pass'}">
1690 <input type=submit name="button" value="戻る">
1691 </form>
1692 EOF
1693 &footer;
1694 }
1695
1696 #-----------------------------------------------------------remove
1697 sub remove {
1698
1699 if($FORM{'mode2'} eq 'remove'){
1700 print <<EOF;
1701 <table border=0>
1702 <tr><td>
1703 <form action="$script" method="POST">
1704 <input type=hidden name=pass value="$FORM{'pass'}">
1705 <input type=hidden name="mode" value="remove">
1706 <input type=hidden name="mode2" value="remove2">
1707 <input type=hidden name="bbs" value="$FORM{'bbs'}">
1708
1709
1710 掲示板<b>$FORM{'bbs'}</b>を削除します。よろしいですか?(最終確認)</td><td>
1711
1712 <input type="submit" value="はい"></td>
1713 </form>
1714
1715 <td><form action="$script" method="POST"><input type=hidden name=pass value="$FORM{'pass'}">
1716 <input type=submit name="button" value="いいえ"></td></tr>
1717 </td></form>
1718 </table>
1719 </body>
1720 </html>
1721 EOF
1722 &footer;
1723 exit;
1724 }elsif($FORM{'mode2'} eq 'remove2'){
1725 $ENV{'SCRIPT_NAME'} =~ /\/([^\/]+)\/kanri.cgi$/;
1726
1727 if (!-e "../$FORM{'bbs'}/" || $FORM{'bbs'} eq "" || $FORM{'bbs'} eq "test" || $FORM{'bbs'} eq "$1" || $FORM{'bbs'} =~ /\//){
1728 DispError("(゚Д゚)ハァ?","(゚Д゚)ハァ?");
1729 }
1730
1731 if (-e "../$FORM{'bbs'}"){
1732 &deltree("../$FORM{'bbs'}");
1733 open(IN,"./board.txt");
1734 @list=<IN>;
1735 close(IN);
1736
1737 foreach (@list){
1738 chomp($_);
1739 ($path,$name,$st)=split /<>/;
1740 if($FORM{'bbs'} ne $path){push(@bbslist,$_);}
1741 open (OUT,">./board.txt");
1742 eval{flock(OUT,2);};
1743 foreach (@bbslist){print OUT "$_\n";}
1744 eval{flock(OUT,8);};
1745 close(OUT);
1746 chmod($p_txt,"../caps.cgi");
1747 }
1748 }
1749
1750 print "<form action=\"$script\" method=\"POST\"><input type=hidden name=pass value=\"$FORM{'pass'}\">完了<input type=submit name=\"button\" value=\"もどる\"></form>";
1751
1752 }
1753 }
1754
1755
1756 sub deltree {
1757 (-e $dir."/test/") && die;
1758 my $dir=$_[0];opendir(DIR,"$dir");foreach(grep !/^\.\.?$/,readdir DIR)
1759 {if(-e "$dir/$_/."){deltree("$dir/$_");}unlink("$dir/$_");}closedir (DIR);
1760 rmdir("$dir");
1761 }
1762
1763 #-----------------------------------------------------------
1764 sub jump {
1765 if ($SETTING{'BBS_LOCATION_CHECK'} eq 'checked') {
1766 print "Location: ./remake.cgi?bbs=$FORM{'bbs'}&key=0\n\n";
1767 } else {
1768 print "Content-Type: text/html; charset=shift_jis\n\n";
1769 print <<EOF;
1770 <html><head>
1771 <title>変更中</title>
1772 <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
1773 <META content=0;URL=./remake.cgi?bbs=$FORM{'bbs'}&key=0 http-equiv=refresh></head>
1774 <body bgcolor=#EEEEEE>
1775 変更中
1776 </body></html>
1777 EOF
1778 }
1779 exit;
1780 }
1781
1782
1783 #エラー画面(エラー処理)
1784 #DispError(TITLE,TOPIC);
1785 sub DispError{
1786 my $title=$_[0];
1787 my $topic=$_[1];
1788 # print "Content-type: text/html; charset=shift_jis\n\n";
1789 #-----------------------------------------------------------------------
1790 print <<EOF;
1791 <html>
1792 <head>
1793 <title>$title</title>
1794 <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
1795 </head>
1796 <body>
1797 <div><b> $topic</b></div>
1798 </body>
1799 </html>
1800 EOF
1801 #-----------------------------------------------------------------------
1802 exit;
1803 }

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24