1 |
#!/usr/local/bin/perl |
2 |
|
3 |
### delete.cgi ver 2.04 (2001/07/10) |
4 |
|
5 |
#$baseurl="http://www.onpuch.jp/cgi-bin/onpuch/"; |
6 |
|
7 |
$method="GET"; |
8 |
|
9 |
##��x�ɕ\������ |
10 |
$thread=50; |
11 |
$res=100; |
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
#�V�X�e����� |
22 |
use vars qw($NOWTIME); |
23 |
$NOWTIME = time; |
24 |
|
25 |
#================================================== |
26 |
#�@�V�X�e���֘A�i�^�C���]�[���E�V�O�i���j |
27 |
#================================================== |
28 |
|
29 |
#�^�C���]�[�����Z�b�g���� |
30 |
{ |
31 |
$ENV{'TZ'} = "JST-9"; |
32 |
} |
33 |
|
34 |
#�V�O�i���Ώ��� |
35 |
sub SigExit { |
36 |
exit(0); |
37 |
} |
38 |
|
39 |
#�Ή��V�O�i�� |
40 |
{ |
41 |
$SIG{'PIPE'} = $SIG{'INT'} = $SIG{'HUP'} = $SIG{'QUIT'} = $SIG{'TERM'} = "SigExit"; |
42 |
} |
43 |
|
44 |
#================================================== |
45 |
#�@�������̎擾�iPOST�j |
46 |
#================================================== |
47 |
|
48 |
my $m_query = undef; |
49 |
my (@m_elements, $m_element, $m_key, $m_value); |
50 |
use vars qw(%FORM); |
51 |
|
52 |
if($ENV{'REQUEST_METHOD'} eq 'POST'){ |
53 |
read(STDIN,$query,$ENV{'CONTENT_LENGTH'}); |
54 |
} |
55 |
$query.= "&$ENV{'QUERY_STRING'}"; |
56 |
|
57 |
my (@elements, $element, $key, $value); |
58 |
@elements = split /&/, $query; |
59 |
foreach $element (@elements){ |
60 |
$element=~tr/+/ /;#+���ɕϊ� |
61 |
($key,$value)=split /=/, $element; |
62 |
$value =~ s/%([\dA-Fa-f]{2})/pack("C",hex($1))/ge; |
63 |
$FORM{$key} = $value; |
64 |
} |
65 |
|
66 |
if($FORM{'address'}){ |
67 |
$FORM{'address'} =~/bbs=([^&]+)/;$FORM{'bbs'} =$1; |
68 |
$FORM{'address'} =~/key=([^&]+)/;$FORM{'key'} =$1; |
69 |
} |
70 |
|
71 |
#================================================== |
72 |
#�@�G���[���X�|���X�iBBS���j |
73 |
#================================================== |
74 |
|
75 |
#BBS�����Ȃ��ꍇ���� |
76 |
#BBS���ɕs���ȕ������������ꍇ������ |
77 |
{ |
78 |
unless($FORM{'bbs'}){ |
79 |
DispError("ERROR�I","�f�[�^������܂���I"); |
80 |
} |
81 |
if($FORM{'bbs'} =~ /(\.|\/)/){ |
82 |
DispError("ERROR�I","�f�[�^������܂���I"); |
83 |
} |
84 |
} |
85 |
|
86 |
#================================================== |
87 |
#�@�������̎擾�i�ݒ�t�@�C���j |
88 |
#================================================== |
89 |
|
90 |
#�ݒ�t�@�C����ǂ� |
91 |
{ |
92 |
my $m_pass = "../" . $FORM{'bbs'} . "/" . "SETTING.TXT"; |
93 |
use vars qw(%SETTING); |
94 |
if(-e $m_pass){ |
95 |
open(FILE,$m_pass); |
96 |
my $m_str=<FILE>; |
97 |
foreach $m_str (<FILE>){ |
98 |
chomp($m_str); |
99 |
$m_str =~ /([^=]*)=([^=]*)/; |
100 |
my ($m_name,$m_value)=($1,$2); |
101 |
#my ($m_name, $m_value) = split(/=/, $m_str); |
102 |
$m_value =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("C", hex($1))/eg; |
103 |
$SETTING{$m_name} = $m_value; |
104 |
} |
105 |
close(FILE); |
106 |
}else{ |
107 |
#�ݒ�t�@�C�����Ȃ��iERROR) |
108 |
DispError("ERROR�I","�f�[�^������܂���I"); |
109 |
} |
110 |
} |
111 |
|
112 |
#================================================== |
113 |
#�@�V�X�e���֘A�i�t�@�C���E�f�B���N�g���p�X�j |
114 |
#================================================== |
115 |
|
116 |
#�e��PATH���� |
117 |
{ |
118 |
use vars qw($WWWPATH); |
119 |
use vars qw($PATH); |
120 |
use vars qw($DATPATH); |
121 |
use vars qw($TEMPPATH); |
122 |
use vars qw($IMODEPATH); |
123 |
$PATH = "../" . $FORM{'bbs'} . "/"; |
124 |
$DATPATH = $PATH . "dat/"; |
125 |
$TEMPPATH = $PATH . "html/"; |
126 |
$IMODEPATH = $PATH . "i/"; |
127 |
} |
128 |
|
129 |
#================================================== |
130 |
#�@�t�@�C������i�T�u�W�F�N�g�t�@�C���ǂݍ��݁j |
131 |
#================================================== |
132 |
|
133 |
#�T�u�W�F�N�g�t�@�C���X�V |
134 |
|
135 |
#�T�u�W�F�N�g�t�@�C����ǂݍ��� |
136 |
{ |
137 |
my $subject = $PATH . "subject.txt"; |
138 |
use vars qw(@PAGEFILE); |
139 |
use vars qw(%SUBJECT); |
140 |
use vars qw($FILENUM); |
141 |
#�T�u�W�F�N�g�t�@�C����ǂݍ��� |
142 |
open(SUBR,"<$subject"); #SUBJECT���J�� |
143 |
my @SUBJECTLIST = <SUBR>; #���e��S�ēǂݍ��� |
144 |
close(SUBR); #���� |
145 |
#�T�u�W�F�N�g���e���n�b�V���Ɋi�[ |
146 |
foreach(@SUBJECTLIST){ |
147 |
chomp($_);#���s����� |
148 |
my ($file, $value) = split(/<>/,$_); |
149 |
my $filename = $DATPATH . $file; |
150 |
if(-e $filename){ |
151 |
#dat�����݂���ꍇ�̂ݍŌ�ɒlj� |
152 |
$file =~ /(\d+)/; |
153 |
$file=$1; |
154 |
push(@PAGEFILE,$file); |
155 |
$SUBJECT{$file} = $value; |
156 |
} |
157 |
} |
158 |
#�T�u�W�F�N�g�����擾 |
159 |
$FILENUM=@PAGEFILE; |
160 |
if($FORM{'subject'}){ |
161 |
$FILENUM++; |
162 |
} |
163 |
} |
164 |
|
165 |
|
166 |
unless($FORM{'key'} && !-e "../$FORM{'bbs'}/dat/$FORM{'key'}.dat"){ |
167 |
|
168 |
if ($FORM{'mode'} eq "res_del"){&res_del;} |
169 |
if ($FORM{'mode'} eq "thread_del"){&thread_del;} |
170 |
if ($FORM{'mode'} eq "thread_move"){&thread_move;} |
171 |
if ($FORM{'mode'} eq "view"){&view;} |
172 |
if ($FORM{'mode'} eq "stop"){&stop;} |
173 |
|
174 |
} |
175 |
#================================================== |
176 |
#�@ |
177 |
#================================================== |
178 |
|
179 |
print "Content-type: text/html; charset=shift_jis\n\n"; |
180 |
print <<"EOF"; |
181 |
<HTML> |
182 |
<HEAD> |
183 |
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> |
184 |
<TITLE>$SETTING{'BBS_TITLE'}</TITLE> |
185 |
</HEAD> |
186 |
<BODY> |
187 |
<b>$SETTING{'BBS_TITLE'}</b> <a href="../$FORM{'bbs'}/index.html">�߂�</a><br> |
188 |
<table border="1" cellspacing="0" cellpadding="2"> |
189 |
<tr><td>�X���b�h�L�[</td><td>�^�C�g��</td><td>�@</td><td>�@</td><td>�@</td><td>�@</td></tr> |
190 |
EOF |
191 |
|
192 |
|
193 |
$page=$FORM{'page'}||1; |
194 |
$st=($page-1)*$thread; |
195 |
$nextfl=1; |
196 |
print "page�F$page\n"; |
197 |
if($FORM{'page'}=~/(\d+)/){$page=$1;} |
198 |
|
199 |
foreach(@PAGEFILE[$st..$st+$thread-1]){ |
200 |
unless($_){$nextfl=0;last;} |
201 |
print <<"EOF"; |
202 |
<tr><td>$_</td><td>$SUBJECT{$_}</td> |
203 |
<td> |
204 |
<form action="./delete.cgi" method="$method"> |
205 |
<input type=submit value="�X�g�b�v"> |
206 |
<input type=hidden name="bbs" value="$FORM{'bbs'}"> |
207 |
<input type=hidden name="key" value="$_"> |
208 |
<input type=hidden name="mode" value="stop"> |
209 |
</td></form> |
210 |
|
211 |
<td> |
212 |
<form action="./delete.cgi" method="$method"> |
213 |
<input type=submit value="���X�\\��"> |
214 |
<input type=hidden name="bbs" value="$FORM{'bbs'}"> |
215 |
<input type=hidden name="key" value="$_"> |
216 |
<input type=hidden name="mode" value="view"> |
217 |
</td></form> |
218 |
|
219 |
<td><form action="./delete.cgi" method="$method"> |
220 |
<input type=hidden name="bbs" value="$FORM{'bbs'}"> |
221 |
<input type=hidden name="key" value="$_"> |
222 |
<input type=hidden name="mode" value="thread_move"> |
223 |
<input type=hidden name="mode2" value="thread_move"> |
224 |
<input type=submit value="�X���b�h�ړ]"></td></form> |
225 |
|
226 |
<td><form action="./delete.cgi" method="$method"> |
227 |
<input type=hidden name="bbs" value="$FORM{'bbs'}"> |
228 |
<input type=hidden name="key" value="$_"> |
229 |
<input type=hidden name="mode" value="thread_del"> |
230 |
<input type=submit value="�X���b�h�폜"></td></form> |
231 |
|
232 |
|
233 |
</tr> |
234 |
EOF |
235 |
} |
236 |
|
237 |
print "</table>\n"; |
238 |
|
239 |
if($nextfl){ |
240 |
$page++; |
241 |
print <<"EOF"; |
242 |
<form action="./delete.cgi" method="$method"> |
243 |
<input type=hidden name=bbs value="$FORM{'bbs'}"> |
244 |
<input type=submit name="button" value="����$thread�X��"> |
245 |
<input type=hidden name="page" value="$page"> |
246 |
</td> |
247 |
</form> |
248 |
EOF |
249 |
} |
250 |
|
251 |
print <<"EOF"; |
252 |
</body> |
253 |
</html> |
254 |
EOF |
255 |
|
256 |
exit; |
257 |
|
258 |
|
259 |
sub view { |
260 |
my $datafile = $DATPATH . $FORM{'key'} . ".dat"; |
261 |
open(NUM,"<$datafile"); |
262 |
my @temp=<NUM>; |
263 |
close(NUM); |
264 |
my $num=@temp; |
265 |
|
266 |
|
267 |
my $log = $PATH . "log/" . $FORM{'key'} . ".cgi"; |
268 |
open(WIP,"<$log"); |
269 |
my @log=<WIP>; |
270 |
close(WIP); |
271 |
|
272 |
foreach (@log) { |
273 |
$_ =~ /(\d+)<>(.+)/; |
274 |
$log{$1} = $2; |
275 |
} |
276 |
|
277 |
|
278 |
|
279 |
|
280 |
($name,$mail,$date,$message,$subject) = split(/<>/,$temp[0]); |
281 |
chomp($subject); |
282 |
print "Content-type: text/html; charset=shift_jis\n\n"; |
283 |
print <<"EOF"; |
284 |
<HTML> |
285 |
<HEAD> |
286 |
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> |
287 |
<TITLE>$SETTING{'BBS_TITLE'}</TITLE> |
288 |
</HEAD> |
289 |
<BODY> |
290 |
<a href="../$FORM{'bbs'}/index.html">$FORM{'bbs'}</a>:<b><a href="../test/read.cgi?bbs=$FORM{'bbs'}&key=$FORM{'key'}">$subject</a></b> ($FORM{'key'})<br> |
291 |
|
292 |
<!--<table border="1" cellspacing="0" cellpadding="2"> |
293 |
<tr> |
294 |
</tr> |
295 |
</table>--> |
296 |
|
297 |
<table border="0" cellspacing="0" cellpadding="0"><tr><td> |
298 |
<form action="./delete.cgi" method="$method"> |
299 |
<input type=hidden name="bbs" value="$FORM{'bbs'}"> |
300 |
<input type=hidden name="key" value="$FORM{'key'}"> |
301 |
<input type=hidden name="mode" value="res_del"> |
302 |
�폜���b�Z�[�W�i�Ɠ����j�F<input type=text name="mes" value="���ځ[��"> |
303 |
<input type=submit value="���s"></td></tr> |
304 |
</table> |
305 |
<table border="1" cellspacing="0" cellpadding="2"> |
306 |
<tr><td>�@</td><td>��<br>��</td><td>���O</td><td>���e��</td><td>���e</td><td>�z�X�g</td></tr> |
307 |
EOF |
308 |
|
309 |
|
310 |
|
311 |
|
312 |
|
313 |
|
314 |
|
315 |
$page=$FORM{'page'}||1; |
316 |
$st=($page-1)*$res; |
317 |
$nextfl=1; |
318 |
print "page�F$page\n"; |
319 |
if($FORM{'page'}=~/(\d+)/){$page=$1;} |
320 |
|
321 |
$n+=$st; |
322 |
foreach(@temp[$st..$st+$res-1]){ |
323 |
unless($_){$nextfl=0;last;} |
324 |
($name,$mail,$date,$message,$subject) = split(/<>/,$_); |
325 |
$date =~ s/ ID:(.+)$//g; |
326 |
$message =~ s/ <br> //g; |
327 |
$message=substr($message,0,28); |
328 |
$message =~ s/</</g; |
329 |
$message =~ s/>/>/g; |
330 |
$n++; |
331 |
($host) = (split /<>/,$log{$n})[1]; |
332 |
#if($mail) {$name="<a href=\"mailto:$mail\">$name</a>"} |
333 |
print "<tr><td><input type=\"checkbox\" name=\"$n\" value=\"1\"></td><td align=\"center\">$n</td><td>$name</td><td>$date</td><td>$message </td><td>$host</td></tr>\n"; |
334 |
} |
335 |
|
336 |
|
337 |
print "</table></form>\n"; |
338 |
|
339 |
if($nextfl){ |
340 |
$page++; |
341 |
print <<"EOF"; |
342 |
<td> |
343 |
<form action="./delete.cgi" method="$method"> |
344 |
<input type=submit value="����$res���X"> |
345 |
<input type=hidden name="bbs" value="$FORM{'bbs'}"> |
346 |
<input type=hidden name="key" value="$FORM{'key'}"> |
347 |
<input type=hidden name="mode" value="view"> |
348 |
<input type=hidden name="page" value="$page"> |
349 |
</form> |
350 |
EOF |
351 |
} |
352 |
|
353 |
print <<"EOF"; |
354 |
|
355 |
</body> |
356 |
</html> |
357 |
EOF |
358 |
|
359 |
exit; |
360 |
|
361 |
} |
362 |
|
363 |
|
364 |
|
365 |
|
366 |
|
367 |
|
368 |
|
369 |
|
370 |
|
371 |
|
372 |
sub res_del { |
373 |
my $datafile = $DATPATH . $FORM{'key'} . ".dat"; |
374 |
open(NUM,"<$datafile"); |
375 |
my @temp=<NUM>; |
376 |
close(NUM); |
377 |
my $num=@temp; |
378 |
($name,$mail,$date,$message,$subject) = split(/<>/,$temp[0]); |
379 |
|
380 |
$i=1; |
381 |
$fl=0; |
382 |
foreach (@temp){ |
383 |
($name,$mail,$date,$message,$subject) = split(/<>/,$_); |
384 |
if($FORM{$i} eq "1"){ |
385 |
if ($FORM{'mes'} ne ""){ |
386 |
$line="$FORM{'mes'}<>$FORM{'mes'}<>$FORM{'mes'}<>$FORM{'mes'}<>$FORM{'mes'}\n"; |
387 |
} |
388 |
else{$line="";$fl=1;} |
389 |
if ($i eq "1" && $FORM{'mes'} eq "") {DispError("ERROR�I","1�͓������ځ[��ł��܂���");} |
390 |
}else{ |
391 |
if($fl){#�����ȉ��̃��X��>>�̃Y�����C��_������ |
392 |
$line=$_; |
393 |
} |
394 |
else {$line=$_;} |
395 |
} |
396 |
push(@ALOG,$line); |
397 |
$i++; |
398 |
} |
399 |
|
400 |
open(OUT, "> $datafile"); |
401 |
eval{flock(OUT,2);}; |
402 |
foreach (@ALOG){print OUT $_;} |
403 |
eval{flock(OUT,8);}; |
404 |
close(OUT); |
405 |
chmod(0666,"$datafile"); |
406 |
|
407 |
&location; |
408 |
|
409 |
} |
410 |
|
411 |
|
412 |
|
413 |
sub thread_del { |
414 |
my $datafile = $DATPATH . $FORM{'key'} . ".dat"; |
415 |
my $subject = $PATH . "subject.txt"; |
416 |
use vars qw(@PAGEFILE); |
417 |
use vars qw(%SUBJECT); |
418 |
use vars qw($FILENUM); |
419 |
|
420 |
my $key = $FORM{'key'}; |
421 |
$delfile = $DATPATH . $key . ".dat"; |
422 |
unlink($delfile); |
423 |
$delfile = $TEMPPATH . $key . ".html"; |
424 |
unlink($delfile); |
425 |
|
426 |
open(SUBR,"<$subject"); #SUBJECT���J�� |
427 |
my @SUBJECTLIST = <SUBR>; #���e��S�ēǂݍ��� |
428 |
close(SUBR); #���� |
429 |
#�T�u�W�F�N�g���e���n�b�V���Ɋi�[ |
430 |
foreach(@SUBJECTLIST){ |
431 |
chomp($_);#���s����� |
432 |
my ($file, $value) = split(/<>/,$_); |
433 |
my $filename = $DATPATH . $file; |
434 |
if(-e $filename){ |
435 |
#dat�����݂���ꍇ�̂ݍŌ�ɒlj� |
436 |
push(@PAGEFILE,$file); |
437 |
$SUBJECT{$file} = $value; |
438 |
} |
439 |
} |
440 |
$FILENUM=@PAGEFILE; |
441 |
my $keyfile = $FORM{'key'} . ".dat"; |
442 |
my $line = $SUBJECT{$keyfile}; |
443 |
$line =~ /(.+)\<(\d+)\>$/; |
444 |
|
445 |
|
446 |
open(SUBW,">$subject"); |
447 |
eval{flock(SUBW,2);}; |
448 |
foreach (@PAGEFILE) { |
449 |
if ($_ ne $keyfile) { |
450 |
print SUBW "$_<>$SUBJECT{$_}\n"; |
451 |
} |
452 |
} |
453 |
eval{flock(SUBW,8);}; |
454 |
close(SUBW); |
455 |
chmod(0666,"$subject"); |
456 |
|
457 |
&location; |
458 |
} |
459 |
|
460 |
sub thread_move { |
461 |
my $datafile = $DATPATH . $FORM{'key'} . ".dat"; |
462 |
|
463 |
print "Content-type: text/html; charset=shift_jis\n\n"; |
464 |
print <<"EOF"; |
465 |
<html> |
466 |
<head> |
467 |
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> |
468 |
<title>�X���b�h�ړ]</title> |
469 |
</head> |
470 |
<body> |
471 |
|
472 |
EOF |
473 |
|
474 |
if($FORM{'mode2'} eq 'thread_move'){ |
475 |
open(IN,"$datafile");@log=<IN>;close(IN); |
476 |
$subject=(split /<>/,$log[0])[4];chomp($subject); |
477 |
print <<"EOF"; |
478 |
<form action="./delete.cgi" method="$method"><input type=submit value="�߂�"><input type=hidden name="mode" value="view"> |
479 |
<input type=hidden name="bbs" value="$FORM{'bbs'}"><input type=hidden name="key" value="$FORM{'key'}"></form> |
480 |
���̃X���b�h���ړ]���܂��B |
481 |
<a href="../$FORM{'bbs'}/index.html">$FORM{'bbs'}</a>:<b><a href="../test/read.cgi?bbs=$FORM{'bbs'}&key=$FORM{'key'}">$subject</a></b> ($FORM{'key'})<br> |
482 |
|
483 |
<form action="./delete.cgi" method=post> |
484 |
|
485 |
�ړ���F<select name="m_to"> |
486 |
<OPTION value=\"kakolog\">�q�Ɂ�$SETTING{'BBS_TITLE'}\n |
487 |
|
488 |
EOF |
489 |
open(IN,"./board.txt");@board=<IN>;close(IN); |
490 |
foreach(@board){ |
491 |
chomp($_); |
492 |
($path,$name,$st)=split /<>/; |
493 |
if($FORM{'bbs'} eq $path){next;} |
494 |
|
495 |
print " <OPTION value=\"$path\">$name\n"; |
496 |
} |
497 |
|
498 |
|
499 |
print <<"EOF"; |
500 |
<input type=submit value="�ړ�"> |
501 |
<input type=hidden name="bbs" value="$FORM{'bbs'}"> |
502 |
<input type=hidden name="key" value="$FORM{'key'}"> |
503 |
<br><input type=checkbox name="log" value="checked">�ՂȂ� |
504 |
<input type=hidden name="mode" value="thread_move"> |
505 |
<input type=hidden name="mode2" value="thread_move2"> |
506 |
</form> |
507 |
|
508 |
EOF |
509 |
}elsif($FORM{'mode2'} eq 'thread_move2'){ |
510 |
$datn = substr($FORM{'key'},0,3); |
511 |
$kako=0;$m_to=$FORM{'m_to'}; |
512 |
if($FORM{'m_to'} eq 'kakolog'){ |
513 |
$FORM{'log'}=1; |
514 |
$FORM{'m_to'}="$FORM{'bbs'}/kako/$datn"; |
515 |
$kako=1; |
516 |
}else{ |
517 |
$FORM{'m_to'}="$FORM{'m_to'}/dat"; |
518 |
} |
519 |
|
520 |
$fr = "../$FORM{'bbs'}/dat/$FORM{'key'}.dat"; |
521 |
$to = "../$FORM{'m_to'}/$FORM{'key'}.dat"; |
522 |
|
523 |
$frh = "../$FORM{'bbs'}/html/$FORM{'key'}.html"; |
524 |
if($kako){$toh = "/dev/nul"}else{$toh="../$m_to/html/$FORM{'key'}.html";} |
525 |
|
526 |
print <<"EOF"; |
527 |
<form action="./delete.cgi" method="$method"><input type=submit value="�߂�"> |
528 |
<input type=hidden name="mode" value="thread_move"> |
529 |
<input type=hidden name="mode2" value="thread_move"> |
530 |
<input type=hidden name="bbs" value="$FORM{'bbs'}"><input type=hidden name="key" value="$FORM{'key'}"></form> |
531 |
EOF |
532 |
if($FORM{'log'}){print "�ՂȂ�";}else{print "�Ղ���";} |
533 |
|
534 |
## �ՂȂ��̏ꍇ�ړ]����subject.txt���猳�X���� |
535 |
if($FORM{'log'}){ |
536 |
open(FILE,"../$FORM{'bbs'}/subject.txt"); |
537 |
@subject =<FILE>; |
538 |
close(FILE); |
539 |
|
540 |
open(FILE,">../$FORM{'bbs'}/subject.txt"); |
541 |
eval{flock(FILE,2)}; |
542 |
foreach(@subject){ |
543 |
chomp($_); |
544 |
($dat,$sub)=split /<>/; |
545 |
if($dat ne "$FORM{'key'}.dat"){ |
546 |
print FILE "$_\n"; |
547 |
} |
548 |
} |
549 |
eval{flock(FILE,8)}; |
550 |
close(FILE); |
551 |
chmod(0666,"../$FORM{'bbs'}/subject.txt"); |
552 |
|
553 |
undef @subject; |
554 |
} |
555 |
|
556 |
## �ߋ����O�s���̏ꍇ�f�B���N�g���쐬 |
557 |
if($kako){ |
558 |
if(!-d "../$m_to/kako/"){ |
559 |
mkdir("../$FORM{'bbs'}/kako/",0777); |
560 |
chmod (0777,"../$FORM{'bbs'}/kako/"); |
561 |
} |
562 |
if(!-d "../$m_to/kako/$datn/"){ |
563 |
mkdir ("../$FORM{'bbs'}/kako/$datn/",0777); |
564 |
chmod (0777,"../$FORM{'bbs'}/kako/$datn/"); |
565 |
} |
566 |
} |
567 |
|
568 |
|
569 |
## �ړ]��Ƀt�@�C���ړ� |
570 |
rename($fr,$to); |
571 |
rename($frh,$toh); |
572 |
|
573 |
if(!$FORM{'log'}){ |
574 |
open(FILE,">$fr"); |
575 |
eval{flock(FILE,2)}; |
576 |
print FILE "�ړ]������<>�ړ]������<>�ړ]������<>�ړ]���܂���<br>������ł��B$baseurl$m_to/index.html<>�ړ]���܂���\n"; |
577 |
eval{flock(FILE,8)}; |
578 |
close(FILE); |
579 |
chmod(0666,"$fr"); |
580 |
|
581 |
} |
582 |
## �ړ]���subject.txt�������� |
583 |
|
584 |
open(FILE,"$to");@log =<FILE>;close(FILE); |
585 |
$subject=(split /<>/,$log[0])[4];$line=@log;chomp($subject); |
586 |
|
587 |
open(FILE,"../$m_to/subject.txt"); |
588 |
@subject =<FILE>; |
589 |
close(FILE); |
590 |
$subl="$FORM{'key'}.dat<>$subject ($line)\n"; |
591 |
unshift(@subject,$subl); |
592 |
|
593 |
open(FILE,">../$m_to/subject.txt"); |
594 |
eval{flock(FILE,2)}; |
595 |
foreach(@subject){ |
596 |
chomp($_); |
597 |
print FILE "$_\n"; |
598 |
} |
599 |
eval{flock(FILE,8)}; |
600 |
close(FILE); |
601 |
chmod(0666,"../$m_to/subject.txt"); |
602 |
|
603 |
|
604 |
print " <br>\n"; |
605 |
print " <br>\n"; |
606 |
$url="remake.cgi?bbs=$FORM{'bbs'}&dat=$FORM{'key'}"; |
607 |
if($kako){$url.="&bbs2=$FORM{'bbs'}&kako2=true&key2=$FORM{'key'}\n";} |
608 |
else{$url.="&bbs2=$m_to&key2=$FORM{'key'}\n";} |
609 |
print " <br>\n"; |
610 |
print "<a href=\"$url\">������������</a>"; |
611 |
|
612 |
|
613 |
} |
614 |
|
615 |
print <<"EOF"; |
616 |
</body> |
617 |
</html> |
618 |
EOF |
619 |
|
620 |
|
621 |
exit; |
622 |
} |
623 |
|
624 |
|
625 |
sub stop { |
626 |
my $datafile = $DATPATH . $FORM{'key'} . ".dat"; |
627 |
open(NUM,"<$datafile"); |
628 |
my @temp=<NUM>; |
629 |
close(NUM); |
630 |
my $num=@temp; |
631 |
|
632 |
open(OUT, ">> $datafile"); |
633 |
eval{flock(OUT,2)}; |
634 |
print OUT "�^�E�X���b�h�X�g�b�p�[<>�^�E�X���b�h�X�g�b�p�[<>��~<>�����܂����(�P�[�P)��د<>\n"; |
635 |
eval{flock(OUT,8)}; |
636 |
close(OUT); |
637 |
|
638 |
#�p�[�~�b�V�������� |
639 |
umask(0); |
640 |
chmod(0666,$datafile); |
641 |
chmod(0777,"$DATPATH"); |
642 |
chmod(0777,"$PATH"); |
643 |
|
644 |
&location |
645 |
} |
646 |
|
647 |
|
648 |
|
649 |
|
650 |
|
651 |
|
652 |
|
653 |
|
654 |
sub location{ |
655 |
$PATH = "./remake.cgi?bbs=$FORM{'bbs'}&key=$FORM{'key'}"; |
656 |
if ($SETTING{'BBS_LOCATION_CHECK'} eq 'checked') { |
657 |
print "Location: $PATH\n\n"; |
658 |
} else { |
659 |
print "Content-Type: text/html; charset=shift_jis\n\n"; |
660 |
print <<EOF; |
661 |
<html><head> |
662 |
<title>�폜��</title> |
663 |
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> |
664 |
<META content=0;URL=$PATH http-equiv=refresh></head> |
665 |
<body bgcolor=#EEEEEE> |
666 |
�폜�� |
667 |
</body></html> |
668 |
EOF |
669 |
} |
670 |
exit; |
671 |
} |
672 |
|
673 |
#�G���[��ʁi�G���[�����j |
674 |
#DispError(TITLE,TOPIC); |
675 |
sub DispError{ |
676 |
my $title=$_[0]; |
677 |
my $topic=$_[1]; |
678 |
print "Content-type: text/html; charset=shift_jis\n\n"; |
679 |
#----------------------------------------------------------------------- |
680 |
print <<EOF; |
681 |
<html> |
682 |
<head> |
683 |
<title>$title</title> |
684 |
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> |
685 |
</head> |
686 |
<body bgcolor="#FFFFFF"> |
687 |
<table width="650" border="1" cellspacing="0" cellpadding="10"> |
688 |
<tr> |
689 |
<td> |
690 |
<table width="640" border="0" cellspacing="0" cellpadding="0"> |
691 |
<tr> |
692 |
<td width="640"> |
693 |
<div align="left"><b>$topic</b></div> |
694 |
key =$FORM{'key'} |
695 |
bbs =$FORM{'bbs'} |
696 |
address =$FORM{'address'} |
697 |
</td> |
698 |
</tr> |
699 |
</table> |
700 |
</td> |
701 |
</tr> |
702 |
</table> |
703 |
<div align="center"></div> |
704 |
</body> |
705 |
</html> |
706 |
EOF |
707 |
#----------------------------------------------------------------------- |
708 |
exit; |
709 |
} |