/[suikacvs]/webroot/sccc/board-t/test/read.cgi
Suika

Contents of /webroot/sccc/board-t/test/read.cgi

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations) (download)
Wed Jan 12 04:23:01 2005 UTC (20 years, 7 months ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
New

1 wakaba 1.1 #!/usr/bin/perl
2    
3     ### read.cgi ver 2.05 (2001/08/22) editted (2001/08/27)
4     ### onpuch original (2003/03/19) version (2004/05/15)
5     # -----------------------------------------------------------
6     use strict;
7     require 'jcode.pl';
8     use CGI::Carp qw/fatalsToBrowser/;
9    
10     use vars qw($hannyou);
11     use vars qw($hyoujun);
12     use vars qw($ver);
13     use vars qw($gzip_path);
14     use vars qw($gzip_enable);
15    
16     $hyoujun = "http://suika.fam.cx".$ENV{'REQUEST_URI'};
17     $hyoujun =~ s/\/test\/.*/\/test\//g;
18     # ���̂܂܂̐ݒ�œ��삵�Ȃ��ꍇ�́A����#������Đ��m�ȃx�[�XURL�������B��Fhttp://pc.2ch.net/test/
19     #$hyoujun = 'http://onpumoe.hp.infoseek.co.jp/cgi-bin/test/';
20    
21     $ver='read.cgi ver4.20 by <a href="http://onpumoe.hp.infoseek.co.jp/script/">GlobalNoteScript</a> (2004/09/05)';
22     $gzip_path = "/bin/gzip";
23     $gzip_enable = 1;
24    
25    
26     #==================================================
27     #�@�������̎擾�iPOST�j
28     #==================================================
29    
30     {
31     use vars qw(%FORM);
32     my ($buffer, @pairs, $name, $value, $path_info, $res, $ls);
33     $path_info = $ENV{'PATH_INFO'};
34     # if ($ENV{'REQUEST_METHOD'} eq "GET") {
35     if ($ENV{'PATH_INFO'} eq "") {
36     $buffer = $ENV{'QUERY_STRING'};
37     @pairs = split(/&/,$buffer);
38     foreach (@pairs) {
39     ($name, $value) = split /=/;
40     $value =~ tr/+/ /;
41     $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack('H2',$1)/eg;
42     $FORM{$name} = $value;
43     }
44     } else {
45     ($FORM{dummy},$FORM{bbs},$FORM{key},$res,$ls) = split /\//, $path_info;
46    
47     if ($res =~ /-/) {
48     ($FORM{st}, $FORM{to}) = split /-/, $res;
49     } else {
50     $FORM{st} = $res;
51     $FORM{to} = $res;
52     }
53     if ($res =~ /n/) {
54     $FORM{nofirst} = "true";
55     $FORM{st} =~ s/n//g;
56     $FORM{to} =~ s/n//g;
57     } else {
58     $FORM{nofirst} = "false";
59     }
60    
61     if ($res =~ /l/) {
62     $ls = $FORM{to};
63     $ls =~ s/l//g;
64     $ls =~ s/n//g;
65     $ls =~ s/i//g;
66     $FORM{ls} = $ls;
67     $FORM{st} = "";
68     $FORM{to} = "";
69     }
70    
71     # if ($res =~ /i/) {
72     if (($ENV{'HTTP_USER_AGENT'} =~ /DoCoMo\//) && ($res =~ /i/)) {
73     $FORM{imode} = "true";
74     $FORM{nofirst} = "true";
75     }
76    
77     $FORM{to} =~ s/i//g;
78     $FORM{to} =~ s/n//g;
79    
80     }
81     }
82    
83    
84     #==================================================
85     #�@�G���[���X�|���X�iBBS���j
86     #==================================================
87    
88     {
89     if(!-e "../$FORM{'bbs'}/dat/$FORM{'key'}.dat" || $FORM{'bbs'} =~ /(\.|\/)/){
90     DispError("����Ȕ�or�X���b�h�Ȃ��ł��B");
91     }
92     if(-s "../$FORM{'bbs'}/dat/$FORM{'key'}.dat" > 550000) {
93     DispError("���̃X���b�h�傫�����܂��B");
94     }
95     }
96    
97    
98     #==================================================
99     #�@�������̎擾�i�ݒ�t�@�C���j
100     #==================================================
101    
102     {
103     use vars qw(%SETTING);
104    
105     # �ݒ�t�@�C����ǂ�
106     my ($m_pass,$m_key,$m_value);
107     $m_pass = "../$FORM{'bbs'}/SETTING.TXT";
108     if(-e $m_pass){
109     open(FILE,$m_pass);
110     foreach (<FILE>){
111     chop;
112     ($m_key,$m_value) = split /=/;
113     $SETTING{$m_key} = $m_value;
114     }
115     close(FILE);
116     }else{
117     # �ݒ�t�@�C�����Ȃ��iERROR)
118     DispError("���[�U�[�ݒ肪�������Ă��܂��I");
119     }
120    
121     # �������̕⊮
122     unless($SETTING{"BBS_THREAD_COLOR"}) {$SETTING{"BBS_THREAD_COLOR"}="#EFEFEF";}
123     unless($SETTING{"BBS_SUBJECT_COLOR"}) {$SETTING{"BBS_SUBJECT_COLOR"}="#FF0000";}
124     unless($SETTING{"BBS_NAME_COLOR"}) {$SETTING{"BBS_NAME_COLOR"}="forestgreen";}
125     unless($SETTING{"BBS_TEXT_COLOR"}) {$SETTING{"BBS_TEXT_COLOR"}="#000000";}
126     unless($SETTING{"BBS_LINK_COLOR"}) {$SETTING{"BBS_LINK_COLOR"}="#0000FF";}
127     unless($SETTING{"BBS_ALINK_COLOR"}) {$SETTING{"BBS_ALINK_COLOR"}="#FF0000";}
128     unless($SETTING{"BBS_VLINK_COLOR"}) {$SETTING{"BBS_VLINK_COLOR"}="#660099";}
129    
130     $SETTING{"BBS_BG_COLOR"}=$SETTING{'BBS_THREAD_COLOR'};
131    
132     $gzip_path = $SETTING{"BBS_GZIP_PATH"};
133     if ($SETTING{"BBS_GZIP_CHECK"} eq "checked") {
134     $gzip_enable = 1;
135     } else {
136     $gzip_enable = 0;
137     }
138     }
139    
140    
141     #==================================================
142     #�@�ϐ��̐ݒ�
143     #==================================================
144    
145     {
146     use vars qw($start);
147     use vars qw($end);
148     use vars qw($NOW);
149     use vars qw(@LOG);
150     $NOW=time;
151     open(ALL,"../$FORM{'bbs'}/dat/$FORM{'key'}.dat");
152     @LOG=<ALL>;
153     close(ALL);
154     my $LINENUM = @LOG;
155    
156     if ($FORM{'st'}) {
157     $start = $FORM{'st'};
158     } elsif ($FORM{'ls'}) {
159     $start = $LINENUM - $FORM{'ls'} + 1;
160     } else {
161     $start=1;
162     }
163     if ($start < 1) {$start = 1;}
164    
165     if ($FORM{'to'}) {
166     $end = $FORM{'to'} + 1;
167     } else {
168     $end = $LINENUM + 1;
169     }
170     if ($end - $start < 1) {$end = $start + 1;}
171    
172     my $st1 = $start - 100; if ($st1 <= 0) {$st1 = 1;}
173     my $st2 = $start - 1;
174     my $st3 = $end;
175     my $st4 = $end + 99; if ($st4 > $LINENUM) {$st4 = $LINENUM;}
176     my $st5 = $LINENUM;
177     my $res1 = $st2 - $st1 + 1;
178     my $res2 = $st4 - $st3 + 1;
179    
180     my $subject=(split /<>/,$LOG[0])[4];
181    
182     my ($name,$mail,$time,$message,$mailto);
183    
184     if(!$FORM{'imode'}){
185     print "Content-type: text/html; charset=shift_jis\n";
186    
187     if ( $gzip_enable ){
188     if ( $ENV{'HTTP_ACCEPT_ENCODING'} =~ /x-gzip/ ){
189     print "Content-encoding: x-gzip\n\n";
190     }
191     elsif ( $ENV{'HTTP_ACCEPT_ENCODING'} =~ /gzip/ ){
192     print "Content-encoding: gzip\n\n";
193     } else {
194     print "\n";
195     $gzip_enable = 0;
196     }
197     }
198     else {
199     print "\n";
200     }
201     open(STDOUT,"| $gzip_path -1 -c") if $gzip_enable;
202    
203     print <<EOF;
204     <HTML>
205     <HEAD>
206     <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
207     <TITLE>
208     $subject
209     </TITLE>
210     <SCRIPT LANGUAGE="JavaScript" type="text/javascript">
211     <!--
212     Name = getCookie("NAME");
213     Mail = getCookie("MAIL");
214     function getCookie(key,tmp1,tmp2,xx1,xx2,xx3) {
215     tmp1 = " " + document.cookie + ";";
216     xx1 = xx2 = 0;
217     len = tmp1.length;
218     while (xx1 < len) {
219     xx2 = tmp1.indexOf(";", xx1);
220     tmp2 = tmp1.substring(xx1 + 1, xx2);
221     xx3 = tmp2.indexOf("=");
222     if (tmp2.substring(0, xx3) == key) {
223     return(unescape(tmp2.substring(xx3 + 1, xx2 - xx1 - 1)));
224     }
225     xx1 = xx2 + 1;
226     }
227     return("");
228     }
229     // -->
230     </SCRIPT>
231     <BASE HREF="$hyoujun">
232     </HEAD>
233     <BODY TEXT="$SETTING{'BBS_TEXT_COLOR'}" BGCOLOR="$SETTING{'BBS_BG_COLOR'}" link="$SETTING{'BBS_LINK_COLOR'}" alink="$SETTING{'BBS_ALINK_COLOR'}" vlink="$SETTING{'BBS_VLINK_COLOR'}">
234     <a href="../$FORM{'bbs'}/index.html">���f���‚ɖ߂遡</a>
235     <a href="./read.cgi/$FORM{'bbs'}/$FORM{'key'}/">�S��</a>
236     EOF
237    
238     my $hundred = int ($LINENUM / 100);
239     for (my $i = 0; $i <= $hundred; $i++) {
240     my $hndst = $i * 100 + 1;
241     my $hndto = $i * 100 + 100;
242     if ($hndst == $LINENUM) {
243     print <<EOF;
244     <a href="./read.cgi/$FORM{'bbs'}/$FORM{'key'}/$hndst">$hndst</a>
245     EOF
246     } elsif ($hndto > $LINENUM) {
247     $hndto = $LINENUM;
248     print <<EOF;
249     <a href="./read.cgi/$FORM{'bbs'}/$FORM{'key'}/$hndst-$hndto">$hndst-$hndto</a>
250     EOF
251     } else {
252     print <<EOF;
253     <a href="./read.cgi/$FORM{'bbs'}/$FORM{'key'}/$hndst-$hndto">$hndst-</a>
254     EOF
255     }
256     }
257    
258     if ($st2 > 0) {
259     $hannyou = "./read.cgi/$FORM{'bbs'}/$FORM{'key'}/$st1-$st2" . "n" ;
260     print <<EOF;
261     <a href=$hannyou>�O$res1</a>
262     EOF
263     }
264     if ($st3 - $LINENUM < 1) {
265     $hannyou = "./read.cgi/$FORM{'bbs'}/$FORM{'key'}/$st3-$st4" . "n" ;
266     print <<EOF;
267     <a href=$hannyou>��$res2</a>
268     EOF
269     } else {
270     $hannyou = "./read.cgi/$FORM{'bbs'}/$FORM{'key'}/$st5" . "n-" ;
271     print <<EOF;
272     <a href=$hannyou>�V�����X</a>
273     EOF
274     }
275    
276     print <<EOF;
277     <a href="./read.cgi/$FORM{'bbs'}/$FORM{'key'}/l50">�ŐV50</a>
278     EOF
279    
280     my $size = int ((-s "../$FORM{'bbs'}/dat/$FORM{'key'}.dat") / 1024);
281    
282     if ($LINENUM >= $SETTING{'BBS_MAX_RES_COUNT'}){
283     my $maxres = $SETTING{'BBS_MAX_RES_COUNT'};
284     print <<EOF;
285     <P><TABLE><TR><TD BGCOLOR=RED>
286     <FONT COLOR=WHITE><BR>���X���� $maxres �𒴂��Ă��܂��B�c�O�Ȃ��炱�̃X���b�h�ɂ͏������߂܂���B<BR><BR></FONT>
287     </TD></TR></TABLE>
288     EOF
289     }elsif (($LINENUM >= ($SETTING{'BBS_MAX_RES_COUNT'} - 50)) && ($SETTING{'BBS_MAX_RES_COUNT'} >= 50)){
290     my $maxres = $SETTING{'BBS_MAX_RES_COUNT'};
291     my $rescount = $maxres - 50;
292     print <<EOF;
293     <P><TABLE><TR><TD BGCOLOR=RED>
294     <FONT COLOR=WHITE>���X���� $rescount �𒴂��Ă��܂��B$maxres�𒴂���Ə������߂Ȃ��Ȃ��B</FONT>
295     </TD></TR></TABLE>
296     EOF
297     }elsif (($LINENUM >= ($SETTING{'BBS_MAX_RES_COUNT'} - 100)) && ($SETTING{'BBS_MAX_RES_COUNT'} >= 100)){
298     my $maxres = $SETTING{'BBS_MAX_RES_COUNT'};
299     my $rescount = $maxres - 100;
300     print <<EOF;
301     <P><TABLE><TR><TD BGCOLOR=YELLOW>
302     ���X���� $rescount �𒴂��Ă��܂��B$maxres�𒴂���Ə������߂Ȃ��Ȃ��B
303     </TD></TR></TABLE>
304     EOF
305     }elsif ($size >= $SETTING{'BBS_MAX_RES_SIZE'}) {
306     my $maxkb = $SETTING{'BBS_MAX_RES_SIZE'} . "KB";
307     print <<EOF;
308     <P><TABLE><TR><TD BGCOLOR=RED>
309     <FONT COLOR=WHITE><BR>�X���b�h�̑傫���� $maxkb �𒴂��Ă��܂��B�c�O�Ȃ��炱�̃X���b�h�ɂ͏������߂܂���B<BR><BR></FONT>
310     </TD></TR></TABLE>
311     EOF
312     }elsif (($size >= ($SETTING{'BBS_MAX_RES_SIZE'} - 20)) && ($SETTING{'BBS_MAX_RES_SIZE'} >= 20)) {
313     my $maxkb = $SETTING{'BBS_MAX_RES_SIZE'} . "KB";
314     my $maxsize = $SETTING{'BBS_MAX_RES_SIZE'} - 20;
315     my $sizekb = $maxsize . "KB";
316     print <<EOF;
317     <P><TABLE><TR><TD BGCOLOR=RED>
318     <FONT COLOR=WHITE>�X���b�h�̑傫���� $sizekb �𒴂��Ă��܂��B$maxkb�𒴂���Ə������߂Ȃ��Ȃ��B</FONT>
319     </TD></TR></TABLE>
320     EOF
321     }elsif (($size >= ($SETTING{'BBS_MAX_RES_SIZE'} - 50)) && ($SETTING{'BBS_MAX_RES_SIZE'} >= 50)) {
322     my $maxkb = $SETTING{'BBS_MAX_RES_SIZE'} . "KB";
323     my $maxsize = $SETTING{'BBS_MAX_RES_SIZE'} - 50;
324     my $sizekb = $maxsize . "KB";
325     print <<EOF;
326     <P><TABLE><TR><TD BGCOLOR=YELLOW>
327     �X���b�h�̑傫���� $sizekb �𒴂��Ă��܂��B$maxkb�𒴂���Ə������߂Ȃ��Ȃ��B
328     </TD></TR></TABLE>
329     EOF
330     }
331    
332     print <<EOF;
333     <P><FONT SIZE=+1 COLOR="$SETTING{'BBS_SUBJECT_COLOR'}">
334     $subject
335     </FONT></B><BR>
336     <DL>
337     EOF
338    
339     if($FORM{'nofirst'} ne "true" || $FORM{'st'} eq 1){
340     chop($LOG[0]);
341     ($name,$mail,$time,$message,$subject) = split(/<>/,$LOG[0]);
342     #�{������̏ꍇ
343     if ($message eq "") {
344     $name="";
345     $mail="";
346     $time="[�������Ă܂�]";
347     $message="[�������Ă܂�]";
348     }
349     my $check = '(?:^|[\0-\200\240-\337])(?:[\201-\237\340-\374]{2})*';
350     $message =~ s/($check)(https?|ftp|gopher|telnet|whois|news)\:([\w|\:\!\#\$\%\=\&\-\^\`\\\|\@\~\[\{\]\}\;\+\*\,\.\?\/]+)/$1<a href=\"$2\:$3\" target=\"_blank\">$2\:$3<\/a>/igo;
351    
352     # ������sjis��1�o�C�g�ڂ�����������
353     my $check1 = '(?:^|[\0-\200\240-\337])(?:[\201-\237\340-\374]{2})*';
354     my $check2 = '[\201-\237\340-\374]';
355     $mail =~ s/($check1)$check2$/$1/g;
356     $name =~ s/($check1)$check2$/$1/g;
357    
358     if($mail){
359     $mailto = "<a href=\"mailto:$mail\"><b>$name</B></a>";
360     }else{
361     $mailto = "<font color=\"$SETTING{'BBS_NAME_COLOR'}\"><b>$name</b></font>";
362     }
363     print "<dt>1 ���O�F$mailto ���e���F$time<dd>$message<br><br>\n";
364     if($start eq 1){$start++;}
365     }
366    
367     while($start != $end){
368     unless($LOG[$start-1]){last;}
369     chop($LOG[$start-1]);
370     ($name,$mail,$time,$message,$subject) = split(/<>/,$LOG[$start-1]);
371     #�{������̏ꍇ
372     if ($message eq "") {
373     $name="";
374     $mail="";
375     $time="[�������Ă܂�]";
376     $message="[�������Ă܂�]";
377     }
378     my $check = '(?:^|[\0-\200\240-\337])(?:[\201-\237\340-\374]{2})*';
379     $message =~ s/($check)(https?|ftp|gopher|telnet|whois|news)\:([\w|\:\!\#\$\%\=\&\-\^\`\\\|\@\~\[\{\]\}\;\+\*\,\.\?\/]+)/$1<a href=\"$2\:$3\" target=\"_blank\">$2\:$3<\/a>/igo;
380    
381     # ������sjis��1�o�C�g�ڂ�����������
382     my $check1 = '(?:^|[\0-\200\240-\337])(?:[\201-\237\340-\374]{2})*';
383     my $check2 = '[\201-\237\340-\374]';
384     $mail =~ s/($check1)$check2$/$1/g;
385     $name =~ s/($check1)$check2$/$1/g;
386    
387     if($mail){
388     $mailto = "<a href=\"mailto:$mail\"><b>$name</B></a>";
389     }else{
390     $mailto = "<font color=\"$SETTING{'BBS_NAME_COLOR'}\"><b>$name</b></font>";
391     }
392     print "<dt>$start ���O�F$mailto ���e���F$time<dd>$message<br><br>\n";
393     $start++;
394     }
395    
396     my $newres = $LINENUM + 1;
397     print <<EOF;
398     </DL><font color=red><b>$size KB</b></font>
399     <hr>
400     <a href="../$FORM{'bbs'}/index.html">�f���‚ɖ߂�</a>
401     <a href="./read.cgi/$FORM{'bbs'}/$FORM{'key'}/">�S��</a>
402     EOF
403     for (my $i = 0; $i <= $hundred; $i++) {
404     my $hndst = $i * 100 + 1;
405     my $hndto = $i * 100 + 100;
406     if ($hndst == $LINENUM) {
407     print <<EOF;
408     <a href="./read.cgi/$FORM{'bbs'}/$FORM{'key'}/$hndst">$hndst</a>
409     EOF
410     } elsif ($hndto > $LINENUM) {
411     $hndto = $LINENUM;
412     print <<EOF;
413     <a href="./read.cgi/$FORM{'bbs'}/$FORM{'key'}/$hndst-$hndto">$hndst-$hndto</a>
414     EOF
415     } else {
416     print <<EOF;
417     <a href="./read.cgi/$FORM{'bbs'}/$FORM{'key'}/$hndst-$hndto">$hndst-</a>
418     EOF
419     }
420     }
421    
422     if ($st2 > 0) {
423     $hannyou = "./read.cgi/$FORM{'bbs'}/$FORM{'key'}/$st1-$st2" . "n" ;
424     print <<EOF;
425     <a href=$hannyou>�O$res1</a>
426     EOF
427     }
428     if ($st3 - $LINENUM < 1) {
429     $hannyou = "./read.cgi/$FORM{'bbs'}/$FORM{'key'}/$st3-$st4" . "n" ;
430     print <<EOF;
431     <a href=$hannyou>��$res2</a>
432     EOF
433     } else {
434     $hannyou = "./read.cgi/$FORM{'bbs'}/$FORM{'key'}/$st5" . "n-" ;
435     print <<EOF;
436     <a href=$hannyou>�V�����X</a>
437     EOF
438     }
439    
440     print <<EOF;
441     <a href="./read.cgi/$FORM{'bbs'}/$FORM{'key'}/l50">�ŐV50</a><hr>
442     EOF
443    
444     if (($LINENUM < $SETTING{'BBS_MAX_RES_COUNT'}) && ($size < $SETTING{'BBS_MAX_RES_SIZE'})){
445     print <<EOF;
446     <table border=0 cellspacing=0 cellpadding=10 vspace=0 hspace=0><tr align="center" valign="top"><td align=left>
447     <form method=POST action="./bbs.cgi">
448     <table border=0 cellspacing=0 cellpadding=0><tr><td align=right>
449     <input type=submit value="��������" name="submit">
450     </td><td> ���O�F
451     <SCRIPT Language="JavaScript">
452     <!--
453     document.write("<INPUT TYPE=text NAME=FROM SIZE=19 VALUE=");
454     document.write(Name,">");
455     // -->
456     </SCRIPT><NOSCRIPT>
457     <INPUT TYPE=text NAME=FROM SIZE=19>
458     </NOSCRIPT>
459     E-mail<font size=1>�i�ȗ��j</font>�F
460     <SCRIPT Language="JavaScript">
461     <!--
462     document.write("<INPUT TYPE=text NAME=mail SIZE=19 VALUE=");
463     document.write(Mail,">");
464     // -->
465     </SCRIPT><NOSCRIPT>
466     <INPUT TYPE=text NAME=mail SIZE=19>
467     </NOSCRIPT>
468     </td></tr></table>
469     <textarea rows=5 cols=70 wrap=OFF name=MESSAGE></textarea>
470     <input type=hidden name=bbs value=$FORM{'bbs'}>
471     <input type=hidden name=key value=$FORM{'key'}>
472     <input type=hidden name=time value=$NOW>
473     </form></td></tr></table>
474     EOF
475     }
476    
477     print <<EOF;
478     $ver</BODY></HTML>
479     EOF
480     close(STDOUT) if $gzip_enable;
481     }else{
482     #==================================================
483     #�@i-mode�p
484     #==================================================
485     if ($FORM{'st'} eq '' && $FORM{'to'} eq '' && $FORM{'ls'} eq '') {
486     $start = $LINENUM - 4; if ($start < 1) {$start = 1;}
487     $end = $LINENUM + 1;
488     }
489    
490     if ($end - $start > 5) {$end = $start + 5;}
491     if ($LINENUM => $start && $end - $LINENUM > 1) {$end = $LINENUM + 1;}
492    
493     my $st1 = $start - 5; if ($st1 <= 0) {$st1 = 1;}
494     my $st2 = $start - 1;
495     my $st3 = $end;
496     my $st4 = $end + 4; if ($st4 > $LINENUM) {$st4 = $LINENUM;}
497     my $st5 = $LINENUM;
498     my $res1 = $st2 - $st1 + 1;
499     my $res2 = $st4 - $st3 + 1;
500    
501     # �S�p�J�i�Ɣ��p�J�i�̕ϊ�
502     &jcode::z2h_sjis(\$subject);
503     foreach (@LOG) {
504     &jcode::z2h_sjis(\$_);
505     }
506    
507     print "Content-type: text/html; charset=shift_jis\n\n";
508     print <<EOF;
509     <HTML>
510     <HEAD>
511     <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
512     <TITLE>
513     $subject
514     </TITLE>
515     <BASE HREF="$hyoujun">
516     </HEAD>
517     <BODY TEXT="$SETTING{"BBS_TEXT_COLOR"}" BGCOLOR="$SETTING{"BBS_BG_COLOR"}" link="$SETTING{"BBS_LINK_COLOR"}" alink="$SETTING{"BBS_ALINK_COLOR"}" vlink="$SETTING{"BBS_VLINK_COLOR"}">
518     <a href="../$FORM{'bbs'}/i/index.html">�f���‚ɖ߂�</a>
519     <a href="./read.cgi/$FORM{'bbs'}/$FORM{'key'}/1-5i">�ŏ�-</a>
520     EOF
521     if ($st2 > 0) {
522     $hannyou = "./read.cgi/$FORM{'bbs'}/$FORM{'key'}/$st1-$st2" . "ni";
523     print <<EOF;
524     <a href=$hannyou>�O$res1</a>
525     EOF
526     }
527     if ($st3 - $LINENUM < 1) {
528     $hannyou = "./read.cgi/$FORM{'bbs'}/$FORM{'key'}/$st3-$st4" . "ni";
529     print <<EOF;
530     <a href=$hannyou>��$res2</a>
531     EOF
532     } else {
533     $hannyou = "./read.cgi/$FORM{'bbs'}/$FORM{'key'}/$st5" . "-ni";
534     print <<EOF;
535     <a href=$hannyou>�V��</a>
536     EOF
537     }
538     print <<EOF;
539     <a href="./read.cgi/$FORM{'bbs'}/$FORM{'key'}/l5i">�ŐV5</a>
540     <P><FONT SIZE=+1 COLOR="$SETTING{'BBS_SUBJECT_COLOR'}">
541     $subject
542     </FONT></B><BR>
543     EOF
544    
545     if($FORM{'nofirst'} ne "true" || $FORM{'st'} eq 1){
546     chop($LOG[0]);
547     ($name,$mail,$time,$message,$subject) = split(/<>/,$LOG[0]);
548     #�{������̏ꍇ
549     if ($message eq "") {
550     $name="";
551     $mail="";
552     $time="[�������Ă܂�]";
553     $message="[�������Ă܂�]";
554     }
555     # URL��ϊ��ionpuch.jp�ȊO��URL�̓����N�����j
556     my $check = '(?:^|[\0-\200\240-\337])(?:[\201-\237\340-\374]{2})*';
557     $message =~ s/($check)(https?|ftp|gopher|telnet|whois|news)\:([\w|\:\!\#\$\%\=\&\-\^\`\\\|\@\~\[\{\]\}\;\+\*\,\.\?\/]+)/$1<r>$2\:$3<\/r>/igo;
558     $message =~ s/<r>(http\:\/\/www\.onpuch\.jp[\w|\:\!\#\$\%\=\&\-\^\`\\\|\@\~\[\{\]\}\;\+\*\,\.\?\/]+)<\/r>/<a href=\"$1\" target=\"_blank\">$1<\/a>/igo;
559     $message =~ s/<r>(https?|ftp|gopher|telnet|whois|news)\:([\w|\:\!\#\$\%\=\&\-\^\`\\\|\@\~\[\{\]\}\;\+\*\,\.\?\/]+)<\/r>/(URL)/igo;
560     $message =~ s/(<a href="(?:\.\.|http\:\/\/www\.onpuch\.jp\/cgi-bin\/onpuch)\/test\/read\.cgi\?bbs=\w+&key=\d+(?:&st=\d+)*(?:&to=\d+)*(?:&nofirst=true)*)/$1&imode=true/g;
561     $message =~ s/<\/?r>//g;
562    
563     # ������sjis��1�o�C�g�ڂ�����������
564     my $check1 = '(?:^|[\0-\200\240-\337])(?:[\201-\237\340-\374]{2})*';
565     my $check2 = '[\201-\237\340-\374]';
566     $mail =~ s/($check1)$check2$/$1/g;
567     $name =~ s/($check1)$check2$/$1/g;
568    
569     if($mail && $mail ne "sage"){
570     $mailto = "<b><a href=\"mailto:$mail\">$name</a></b>";
571     }else{
572     $mailto = "<b>$name</b>";
573     }
574     print "<p>[1:$mailto($time)]<br>$message</p><hr>\n";
575     if($start eq 1){$start++;}
576     }
577    
578     while($start != $end){
579     unless($LOG[$start-1]){last;}
580     chop($LOG[$start-1]);
581     ($name,$mail,$time,$message,$subject) = split(/<>/,$LOG[$start-1]);
582     #�{������̏ꍇ
583     if ($message eq "") {
584     $name="";
585     $mail="";
586     $time="[�������Ă܂�]";
587     $message="[�������Ă܂�]";
588     }
589     # URL��ϊ��ionpuch.jp�ȊO��URL�̓����N�����j
590     my $check = '(?:^|[\0-\200\240-\337])(?:[\201-\237\340-\374]{2})*';
591     $message =~ s/($check)(https?|ftp|gopher|telnet|whois|news)\:([\w|\:\!\#\$\%\=\&\-\^\`\\\|\@\~\[\{\]\}\;\+\*\,\.\?\/]+)/$1<r>$2\:$3<\/r>/igo;
592     $message =~ s/<r>(http\:\/\/www\.onpuch\.jp[\w|\:\!\#\$\%\=\&\-\^\`\\\|\@\~\[\{\]\}\;\+\*\,\.\?\/]+)<\/r>/<a href=\"$1\" target=\"_blank\">$1<\/a>/igo;
593     $message =~ s/<r>(https?|ftp|gopher|telnet|whois|news)\:([\w|\:\!\#\$\%\=\&\-\^\`\\\|\@\~\[\{\]\}\;\+\*\,\.\?\/]+)<\/r>/(URL)/igo;
594     $message =~ s/(<a href="(?:\.\.|http\:\/\/www\.onpuch\.jp\/cgi-bin\/onpuch)\/test\/read\.cgi\?bbs=\w+&key=\d+(?:&st=\d+)*(?:&to=\d+)*(?:&nofirst=true)*)/$1&imode=true/g;
595     $message =~ s/<\/?r>//g;
596    
597     # ������sjis��1�o�C�g�ڂ�����������
598     my $check1 = '(?:^|[\0-\200\240-\337])(?:[\201-\237\340-\374]{2})*';
599     my $check2 = '[\201-\237\340-\374]';
600     $mail =~ s/($check1)$check2$/$1/g;
601     $name =~ s/($check1)$check2$/$1/g;
602    
603     if($mail && $mail ne "sage"){
604     $mailto = "<b><a href=\"mailto:$mail\">$name</a></b>";
605     }else{
606     $mailto = "<b>$name</b>";
607     }
608     print "<p>[$start:$mailto($time)]<br>$message</p><hr>\n";
609     $start++;
610     }
611    
612     #my $FL=1;
613     #if($FORM{'ls'} || $end > 1001 || $end > @LOG-1){$FL=0}
614     #if($FL){
615    
616     print <<EOF;
617     <a href="../$FORM{'bbs'}/i/index.html">�f���‚ɖ߂�</a>
618     <a href="./read.cgi/$FORM{'bbs'}/$FORM{'key'}/1-5i">�ŏ�-</a>
619     EOF
620     if ($st2 > 0) {
621     $hannyou = "./read.cgi/$FORM{'bbs'}/$FORM{'key'}/$st1-$st2" . "ni";
622     print <<EOF;
623     <a href=$hannyou>�O$res1</a>
624     EOF
625     }
626     if ($st3 - $LINENUM < 1) {
627     $hannyou = "./read.cgi/$FORM{'bbs'}/$FORM{'key'}/$st3-$st4" . "ni";
628     print <<EOF;
629     <a href=$hannyou>��$res2</a>
630     EOF
631     } else {
632     $hannyou = "./read.cgi/$FORM{'bbs'}/$FORM{'key'}/$st5" . "-ni";
633     print <<EOF;
634     <a href=$hannyou>�V��</a>
635     EOF
636     }
637     print <<EOF;
638     <a href="./read.cgi/$FORM{'bbs'}/$FORM{'key'}/l5i">�ŐV5</a><BR>
639     EOF
640     #}
641     print "<FORM METHOD=POST ACTION=\"./bbs.cgi\">\n";
642     print "<INPUT TYPE=submit VALUE=\"��������\" name=\"submit\"> ";
643     print "NAME�F<INPUT TYPE=text NAME=FROM SIZE=20 VALUE=\"\">";
644     print "MAIL�F<INPUT TYPE=text NAME=mail SIZE=20 VALUE=\"\">";
645     print "<br>";
646     print "<INPUT TYPE=hidden name=time VALUE=$NOW>\n";
647     print "<INPUT TYPE=hidden name=bbs VALUE=$FORM{'bbs'}>\n";
648     print "<INPUT TYPE=hidden name=key VALUE=$FORM{'key'}>\n";
649     print "<TEXTAREA ROWS=5 COLS=60 wrap=off NAME=MESSAGE></TEXTAREA>\n";
650     print "</FORM><br>\n";
651     print "<P>$ver";
652     print "</BODY>";
653     print "</HTML>";
654     exit;
655     }
656     }
657    
658    
659     #�G���[��ʁi�G���[�����j
660     #DispError(TITLE,TOPIC);
661     sub DispError{
662     my ($topic)=@_;
663     print "Content-type: text/html; charset=shift_jis\n\n";
664     #-----------------------------------------------------------------------
665     print <<EOF;
666     <HTML>
667     <HEAD>
668     <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
669     <TITLE>$topic</TITLE>
670     <style type="text/css">
671     <!--
672     TD.Type1 {
673     color: #ffffff;
674     text-align: left;
675     }
676     A.BigLine {
677     color: #000000;
678     text-decoration: none;
679     }
680     -->
681     </style>
682     <BASE HREF="$hyoujun">
683     </HEAD>
684     <BODY TEXT="#000000" BGCOLOR="#EFEFEF" link="#0000FF" alink="#FF0000" vlink="#660099">
685     <P><FONT SIZE=+1 COLOR="#FF0000">$topic</FONT></B><BR>
686     <DL>
687     <dt>1 ���O�F<font color="forestgreen"><b>$ver</b></font>���e���F2001/04/12(��) 15:11<dd>$topic<br><br><br>
688     </DL>
689     <HR>
690     <FONT SIZE=-2>$ver</FONT>
691     <HR><P>
692     EOF
693     my $datn = substr($FORM{'key'},0,3);
694    
695     if (-e "../$FORM{'bbs'}/kako/$FORM{'key'}.html"){
696     print "����! �ߋ����O�q�ɂŁA<A TARGET=\"_self\" HREF=\"../$FORM{'bbs'}/kako/$FORM{'key'}.html\">�X���b�h $FORM{'key'}.html</A>�@�𔭌����܂����B\n";
697     }elsif (-e "../$FORM{'bbs'}/kako/$datn/$FORM{'key'}.dat"){
698     print "����! �ߋ����O�q�ɂŁA<A TARGET=\"_self\" HREF=\"../$FORM{'bbs'}/kako/$datn/$FORM{'key'}.dat\">�X���b�h $FORM{'key'}.dat</A>�@�𔭌����܂����B<BR><B><FONT SIZE=+1 COLOR=RED>��</FONT></B>�A�������܂� html������Ă��܂���B�c�O�A�҂‚����Ȃ��B\n";
699     }else{
700     print "<A TARGET=\"_self\" HREF=\"../$FORM{'bbs'}/kako/index.html\">�ߋ����O�q��</A>�ɂ�����܂���ł����B<BR>�₢���킹�Ă����‚���”\\���͂قƂ�ǂ���܂���B\n";
701     }
702     print <<EOF;
703     </BODY>
704     </HTML>
705     EOF
706     exit;
707     }

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24  
Google Analytics is used in this page; Cookies are used. 忍者AdMax is used in this page; Cookies are used. Privacy policy.