#!/usr/local/bin/perl #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ #_/ Ahhan! Main System _/ my $version = '2.55e'; #15/Sep/2000 - 10/Jan/2002 _/ #_/ by bunbun _/ #_/ Mail: mig-poco@kcn.ne.jp _/ #_/ Home: http://www1.kcn.ne.jp/~mig-poco/ (旧) _/ #_/ Home: http://www.kokobbs.com/ahhan/ (新) _/ #_/_/_/参考 script _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ #_/ <ベース> _/ #_/ 2ch-Type BBS 2.1 build 2 Home: http://around.tripod.co.jp/ _/ #_/ Mail: mono@nihen.on.arena.ne.jp _/ #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ ## ---[注意事項]------------------------------------------------------ ## 1. このスクリプトは、初心者が上記 2ch-Type BBS 2.1 build 2 スクリ ## プトをベースに、改造したフリーソフトです。 ## 2. このスクリプトを使用したいかなる損害に対しても作者は一切の責任を ##  負いません。 ## 3. 設置に関する質問はサポート掲示板にお願いいたしますが、十分に答え ## られるかは、疑問です。また、メールによる質問はご遠慮ください。 ## 4. オートリンクに使用しているチェックサイトは、 ## SmartContentsCollection ## http://www.coara.or.jp/~tkuri/indexj.htm ## の使用規定に則したものですが苦情が有れば、即座に外すようにして下 ##  さい。 ## ------------------------------------------------------------------- require './jcode.pl'; require './pref.cgi'; require './proofing.pl'; my $design_file=$pref::design_file; my $master_pass=$pref::master_pass; my $top_p=$pref::top_p; my $sup_name=$pref::sup_name; my $sup_email=$pref::sup_email; my $t_zone=$pref::t_zone; my $l_or_m=$pref::l_or_m; my $g_home=$pref::g_home; my $do_fl =$pref::do_fl; my $file_lock =$pref::file_lock; my $c_days=$pref::c_days; my $script=$pref::script; my $script_path=$pref::script_path; my $keitai =$pref::keitai; my $script_i=$pref::script_i; my $onepage_i=$pref::onepage_i; my $onethre_i=$pref::onethre_i; my $s_cookie= $pref::s_cookie; my $head_l= $pref::head_l; my $headline= $pref::headline; my $log_dr=$pref::log_dr; if($pref::cgi_dr) { $cgi_dr = $pref::cgi_dr; } else { $cgi_dr = $log_dr; } if($pref::html_dr) { $html_dr = $pref::html_dr; } else { $html_dr = $log_dr; } my $mente=$pref::mente; my $thre_nv=$pref::thre_nv; my $cgi_only=$pref::cgi_only; my $index=$pref::index; my $boardname=$pref::boardname; my $boardmenu=$pref::boardmenu; my $extension=$pref::extension; my $search=$pref::search; my $base_url=$pref::base_url; my $kensaku=$pref::kensaku; my $kote_check=$pref::kote_check; my $mailing=$pref::mailing; my $m_from_admin=$pref::m_from_admin; my $mailsoft_path=$pref::mailsoft_path; my $mailto=$pref::mailto; my $mail_contents=$pref::mail_contents; my $kiken_check=$pref::kiken_check; my $taboo_check=$pref::taboo_check; my $thre_to=$pref::thre_to; my $quote_color=$pref::quote_color; my $log_max=$pref::log_max; my $clip=$pref::clip; my $tagkey=$pref::tagkey; my $new_mark=$pref::new_mark; my $mark_time=$pref::mark_time; my $onep_mark=$pref::onep_mark; my $not_sutehan =$pref::not_sutehan; my $not_nanashi =$pref::not_nanashi; my $nanashi=$pref::nanashi; my $b_thr=$pref::b_thr; my $autolink=$pref::autolink; my $link_check=$pref::link_check; my $onepage=$pref::onepage; my $onethre=$pref::onethre; my $message =$pref::message; my @week=@pref::week; my $host_w=$pref::host_w; my $renzoku=$pref::renzoku; my $not_dup_com=$pref::not_dup_com; my $lock_a = 0; my $script_name = "Ahhan ! BBS"; my $kaiz = "2chTypeBBS Ver.2.1 build 2 改造版 "; require "./$design_file"; my $name_cola =$mbbslib::name_cola; my $dn_col =$mbbslib::dn_col; if ($kote_check){ $name_colb =$mbbslib::name_colb; $name_colc =$mbbslib::name_colc; } my $sitetitle1=$mbbslib::sitetitle1; my $sitetitle2=$mbbslib::sitetitle2; my $sitetitle3=$mbbslib::sitetitle3; my $bakgr_url_a=$mbbslib::bakgr_url_a; my $bakgr_url_b=$mbbslib::bakgr_url_b; my $bakgr=$mbbslib::bakgr; my $bgcolor =$mbbslib::bgcolor; my $style=$mbbslib::style; my $imgsrc=$mbbslib::imgsrc; my $category=$mbbslib::category; my $parce=$mbbslib::parce; my $parcekiji=$mbbslib::parcekiji; my $tt_bgcolor=$mbbslib::tt_bgcolor; my $ti_bgcolor=$mbbslib::ti_bgcolor; my $ti_fontcolor=$mbbslib::ti_fontcolor; my $ti_li_fc=$mbbslib::ti_li_fc; my $tm_bgcolor=$mbbslib::tm_bgcolor; my $cltb_col=$mbbslib::cltb_col; my $th_bgcolor=$mbbslib::th_bgcolor; my $t_b_color=$mbbslib::t_b_color; my $border_width=$mbbslib::border_width; my $space1=$mbbslib::space1; my $space2=$mbbslib::space2; my $space3=$mbbslib::space3; my ( $mode,$pwd,$folder,$folder_m,$name, $com,$email,$t_updn,$sub,$thre_st, $thre_ed,$b_file,$thre_no,$resnew,$resstart, $resend,$readfirst,$all_p,$loc_scr,$home_a ) = &decode; my $name_bak = $name; if ($thre_st eq 'all'){ $sitetitle3 = $sitetitle2; } &decode_b; local ($gc_name,$gc_email) = &mbbslib'Get_Cookie($folder); if ($mode ne 'regist' && $mode ne 'res' && $mode ne 'reload'){ $js_no = 1; } if ($mode ne "reload"){ if ($mode eq "next"){&next;} if ($mode eq "point"){&point;} if ($base_url) { &out_url;} if ($mode eq "regist"){ if ($renzoku){ &hostcheck;} if ($sub eq "") { &error("タイトルが記入されていません",$lock_a,'','');} if($sub ne substr($sub,0,60)){ &error("タイトルが長すぎます",$lock_a,'',''); } &f_lock; ®ist; }elsif ($mode eq "res"){ &resregist_a; &f_lock; &resregist_b; } }else { if ($pwd ne "$master_pass") { &error("パスワードが違います。",$lock_a,'',''); } $location = "$url_sf$mente?mode=admenu&pwd=$pwd"; &f_lock; } if ($do_fl == 1 && $lock_a == 0 && $cgi_only == 0){ &f_lock; } if ( $cgi_only == 0 ){ if ($do_fl == 0 || $lock_a == 1) { &make_head; &make_body; } else { &error("トップページを書き換える事が出来ませんでした。
再投稿してください。",$lock_a,'',''); } } if ($lock_a == 1) { rmdir($f_l_n); $lock_a = 0; } if($folder_m ne ""){ if ( $cgi_only == 0 ){ $folder =$folder_m; &f_lock; if ($do_fl == 0 || $lock_a == 1) { &make_head; &make_body; } else { &error("移動先トップページを書き換える事が出来ませんでした。
そのページを書き換えてください。",$lock_a,'',''); } } if ($lock_a == 1) { rmdir($f_l_n); $lock_a = 0; } } &end_location; exit; sub next { print "Content-type: text/html; charset=Shift_JIS\n\n"; $h_ct = 1; &make_head; if ($thre_st ne "all") { &make_body; } else { &mbbslib'MekeFoot($sup_email,$sup_name,$script_name,$version,$kaiz,"out"); } exit; } sub point { print "Content-type: text/html; charset=Shift_JIS\n\n"; $h_ct = 1; &list_point; &mbbslib'MekeFoot($sup_email,$sup_name,$script_name,$version,$kaiz,"out"); exit; } sub end_location { if ($loc_scr eq "i_f" || $loc_scr eq "iv_f") { print "Content-type: text/html; charset=Shift_JIS\n\n"; print <<"EOF"; 登録のお知らせ
登録されました。
頁移動しない場合
投稿確認をする
スレッドを一覧
掲示板を一覧する EOF } elsif ($loc_scr eq "w_f" || $loc_scr eq "wv_f") { print "Content-type: text/x-hdml; charset=Shift_JIS\n\n"; print <<"EOF";
登録されました。
−−−−−−−−−−
投稿確認をする
スレッドを一覧
掲示板を一覧する EOF }else{ print "Pragma: no-cache\n" ; print "Cache-control: no-cache\n" ; print "Content-Language: ja\n"; print "Content-type: text/html; charset=Shift_JIS\n" ; if($l_or_m) { print "\n" ; print <<"EOF"; EOF } else { print "Location: $location\n\n" ; } } } sub decode { my %FORM ; if ($ENV{'REQUEST_METHOD'} eq "POST") { if ($log_max ne ''){ if ($ENV{'CONTENT_LENGTH'} > ($log_max*6+1000)) { &error("投稿量が大きすぎます。",$lock_a,'',''); } } read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); } else { $buffer = $ENV{'QUERY_STRING'}; } my @pairs = split(/&/,$buffer); my $pair; foreach $pair (@pairs) { my ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; &jcode'convert(*value,'sjis'); if ($tagkey == 0) { $value =~ s/\&/&/g; $value =~ s//>/g; } else { $value =~ s/>>/>>/g; $value =~ s/<>/<>/g; $value =~ s///g; } $FORM{$name} = $value; if($name eq 'name' || $name eq 'com' || $name eq 'sub' ){ } elsif ( $name eq 'email' || $name eq 'gho' ){ $FORM{$name} =~ s/style/style/gi; }else{ $FORM{$name} =~ s/\W//g; } } if ($log_max ne '' && $FORM{pwd} ne $master_pass){ if($FORM{com} ne substr($FORM{com},0,$log_max)){ &error("投稿量が大きすぎます。",$lock_a,'',''); } } if($FORM{gho}){ if ($FORM{gho}=~/</i) { &error("URL欄にタグや「<」は入れないでください。",$lock_a,'',g); } else { $FORM{gho} =~ s/ //g; $FORM{gho} =~ s/ //g; $FORM{gho} =~ s/ //g; if ($FORM{gho}=~/[http|ftp]/i) { my ($key,$key_d,$url); $FORM{gho} = &mbbslib'Sjis_Substr($FORM{gho},0,100,false,true); if ($FORM{gho}=~/>(http|ftp):\/\//i) { ($key,$url) = split(/>/,$FORM{gho}); } elsif ($FORM{gho}=~/>(http|ftp):\/\//i) { ($key,$url) = split(/>/, $FORM{gho}); } elsif ($FORM{gho}=~/http:\/\//i) { ($key,$url) = split(/http:\/\//,$FORM{gho}); $url = "http:\/\/$url"; } elsif ($FORM{gho}=~/ftp:\/\//i) { ($key_d,$url) = split(/ftp:\/\//,$FORM{gho}); $url = "ftp:\/\/$url"; } else { ($key,$url) = ($FORM{gho},""); } $key = &mbbslib'Sjis_Substr($key,0,30,false,true); if ($url){ $FORM{gho} = "$key>$url"; } else { $FORM{gho} = $key; } } else { $FORM{gho} = &mbbslib'Sjis_Substr($FORM{gho},0,30,false,true); } } } if($FORM{mo} eq '' && $FORM{mode}) { $FORM{mo} = $FORM{mode}; } if($FORM{mo} eq 'n') { $FORM{mo} = 'next'; } elsif ( $FORM{mo} eq 'p' ){ $FORM{mo} = 'point'; } if($FORM{fo} eq '' && $FORM{fol}) { $FORM{fo} = $FORM{fol}; } if($FORM{mo} eq 'res'|| $FORM{mo} eq 'regist') { if ($g_home != 1) { $FORM{gho} = ""; } } else { $FORM{name} = ""; $FORM{com} = ""; $FORM{email} = ""; $FORM{gho} = ""; $FORM{sub} = ""; } return ( $FORM{mo},$FORM{pwd},$FORM{fo},$FORM{fol_m},$FORM{name}, $FORM{com},$FORM{email},$FORM{sage},$FORM{sub},$FORM{ts}, $FORM{te},$FORM{file},$FORM{tn},$FORM{rn},$FORM{rs}, $FORM{re},$FORM{rf},$FORM{al},$FORM{loc},$FORM{gho} ); } sub decode_b { if ($pwd eq "$master_pass") { $com =~ s/&/\&/g; $com =~ s/<//g; } $dat_a = &mbbslib'File_Name ($log_dr,$folder,$thre_no,"a",$extension); $dat_b = &mbbslib'File_Name ($log_dr,$folder,$thre_no,"b",$extension); $no_a=0; if (open(BN,"$boardname")){ @boardname = ; close(BN); foreach (@boardname) { $boardname[$no_a] =~ s/\n//g; ($nameshort,$namelong,$cola,$colb,$colc,$cold,$cole,$colf,$catelink,$tagact,$boact,$cate_gr,$b_nan,$b_mes,$ho_o,$no_sut,$no_nan) = split(/<>/, $boardname[$no_a]); $no_a++; if ($folder eq $nameshort) { $bbstitle=$namelong; $tbgc_a =$cola; $bd_col =$colb; $tp_col =$colc; $tb_col =$cold; $tb_colb =$cole; $tf_col =$colf; $cate_link=$catelink; $tag_act =$tagact; $bo_act =$boact; if($b_nan){ $nanashi=$b_nan; } if($b_mes){ $message=$b_mes; $message =~ s/\n//g; $message =~ s/<//g; } if ($ho_o eq 'off') { $g_home = 0; $home_a = ""; } if ($no_sut eq 'on') { $not_sutehan = 1; } if ($no_nan eq 'on') { $not_nanashi = 1; } } } }else{ $bbstitle= $folder; $tbgc_a = $th_bgcolor; $bd_col = $t_b_color; $tp_col = $tm_bgcolor; $tb_col = $tt_bgcolor; $tb_colb = $ti_bgcolor; $tf_col = $ti_fontcolor; $cate_link='on'; $tag_act ='off'; $bo_act ='0'; } if ($mode eq "regist" && $bo_act > 0){ if ($pwd ne "$master_pass") { &error("この掲示板はスレッドを建てる事は出来ません。","$lock_a",'',''); } } elsif ($mode eq "res" && $bo_act == 2){ if ($pwd ne "$master_pass") { &error("只今、このスレッドには投稿出来ません。","$lock_a",'',''); } } if($tagkey == 1||$tag_act eq "on") { if ($com =~/[(<|<)|(<\/|<\/)](table|colgroup|col|caption|thead|tfoot|tbody|th|tr|td|tt|plaintext|xmp|dl|ol|ul)/i) {&error("現在使用できないタグ
<table>
<colgroup>
<col>
<caption>
<thead>
<tfoot>
<tbody>
<th>
<tr>
<td>
<tt>
<plaintext>
<xmp>
<dl>
<ul>
<ol>
この為投稿できません。",$lock_a,'','');} } $no_a=0; if ($mode eq "point"){ if ($resend != 0){ if ($resstart > $resend){ ($resstart,$resend) = ($resend,$resstart); } } } elsif ($mode ne "next"){ if ($name eq "") { if ($mode ne reload){ if ($not_nanashi) { &error("名前を記入してください。","$lock_a",'',''); } else { $name = "$nanashi"; $c_name = "$nanashi"; } } } else { $c_name = $name_bak; $c_name =~ s/,/./g; } if($name ne substr($name,0,40)){ &error("長い名前では投稿できません。","$lock_a",'',''); } if ($mode ne "reload") { $com =~ s/\r\n/
/g; $com =~ s/\r/
/g; $com =~ s/\n/
/g; $com =~ s/ 
/
/g; $com =~ s/
/
/g; $com =~ s/



//g; $com =~ s/\r\n/
/g; $com =~ s/\r/
/g; $com =~ s/\n/
/g; if ($com eq "") { &error("本文が書き込まれていません","$lock_a",'',''); } $sub =~ s/\r\n//g; $sub =~ s/\r//g; $sub =~ s/\n//g; $reto = ""; $sato = ""; $close = ""; $updn = ""; $sw_a = ""; $sw_b = ""; if ($kote_check){ require 'passkote.cgi'; require 'passkotek.cgi'; &Kote_c ($name); } if ($kiken_check){ require 'kiken.cgi'; &Kiken_c ($com); if ( $home_a){ &Kiken_c ($home_a); } } if ($taboo_check){ require './taboo.cgi'; local %taboo_word=%taboo::taboo_word; &Taboo_c ($name); &Taboo_c ($com); if ($email){ &Taboo_c ($email); } if ($g_home && $home_a){ &Taboo_c ($home_a); } if ($sub){ &Taboo_c ($sub); } } $ENV{'TZ'} = $t_zone; ($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime(time); $date = sprintf("%04d/%02d/%02d(%s) %02d:%02d", $year+1900,$mon+1,$mday,$week[$wday],$hour,$min); } } if ($mode eq 'next' || $mode eq 'point' || $cgi_only == 1 ) { $url_sf = "./"; $url_a = $url_sf; if ( $cgi_only == 1 ) { $url_b = "./"; } else { $url_b = "$html_dr\/"; } $bakgr_url=$bakgr_url_a; if ($mode eq 'point') { $index_b=$thre_no; } else { $index_b='0'; } } else { $bakgr_url=$bakgr_url_b; if($pref::cgi_dr) { $url_a = "$cgi_dr\/"; } else { $url_a = "../"; } $url_b = "./"; $url_c = "$html_dr\/$folder\/"; $index_b='0'; } if ($cgi_only) { $b_index = "$url_sf$script?mo=n&fo=$folder&ts=1&te=$thre_to"; } else { if ($mode eq 'next' || $mode eq 'point'){ $b_index = "$url_b$folder/$index"; } else { $b_index = "$url_b$index"; } } if ($kensaku) { $go_search =(<ログ検索 EOF } if($keitai){ if($mode eq 'point') { $keitai_url = "$url_a$script_i?fo=$folder&tn=$thre_no"; }else{ @i_pn=&mbbslib'ThisPageCheck($thre_st,$onepage_i); $keitai_url = "$url_a$script_i?fo=$folder&pg=$i_pn[3]"; } $keitai_url =~ s/\s//g; $keitai_p =(<<"EOF"); KoMaDo EOF $keitai_t =(<<"EOF");  KoMaDo / EOF } if($head_l){ $p_headline =(<<"EOF");  \ ■ Headline EOF $t_headline =(<<"EOF"); Headline / EOF } if($top_p){ $p_top_p =(<<"EOF"); ■ HOME  EOF $t_top_p =(<<"EOF"); HOME / EOF } } sub Kote_c { my %kote_namek=%passkotek::kote_namek; my %kote_passk=%passkotek::kote_passk; my %kote_name=%passkote::kote_name; my %kote_pass=%passkote::kote_pass; for (keys %kote_name){ $name =~ s/([.]+)\Q$_\E([.]+)/$1$kote_name{$_}$2/ig; ($kote_name{$_}) and $name =~ s/\Q$_\E/"$_"/ig; } for (keys %kote_pass){ $name =~ s/([.]+)$_([.]+)/$1$kote_pass{$_}$2/ig; ($kote_pass{$_}) and ($name =~ s/\Q$_\E/$kote_pass{$_}/ig) and ($sw_a = 2); } for (keys %kote_namek){ $name =~ s/([.]+)\Q$_\E([.]+)/$1$kote_namek{$_}$2/ig; ($kote_namek{$_}) and $name =~ s/\Q$_\E/"$_"/ig; } for (keys %kote_passk){ $name =~ s/([.]+)$_([.]+)/$1$kote_passk{$_}$2/ig; ($kote_passk{$_}) and ($name =~ s/\Q$_\E/$kote_passk{$_}/ig) and ($sw_a = 1); } if ($sw_a == 0 && $not_sutehan == 1) { &error ("登録者以外の投稿は出来ません。","$lock_a", 1 ,''); } } sub Kiken_c { my $kinsi1=$pref::kinsi1; my $kinsi2=$pref::kinsi2; my @kiken01=@kiken::kiken01; my @sitai01=@kiken::sitai01; foreach $line (@kiken01){ $_[0] =~ s/\Q$line\E/$kinsi1/ig; } foreach $line (@sitai01){ $_[0] =~ s/\Q$line\E/$kinsi2/ig; } } sub Taboo_c { for (keys %taboo_word){ $_[0] =~ s/([.]+)\Q$_\E([.]+)/$1$taboo_word{$_}$2/ig; ($taboo_word{$_}) and $_[0] =~ s/\Q$_\E/$taboo_word{$_}/ig; } return ; } sub make_head { if ($mode ne 'next') { $nolog=0; $write_html = "$log_dr/$folder/$index"; open(HTML,">$write_html"); } if ($cate_link ne "off"){ open(BM,"$boardmenu") || &error("Open Error 2 : $boardmenu",$lock_a,'','') ; @boards = ; close(BM); if ($mode eq 'next' && $cgi_only == 1) { $no_a = 0; foreach (@boards) { $boards[$no_a] =~ s/\.\.\//\.\//ig; $boards[$no_a] =~ s/\.\/(.*)\/index.html(.*)/\.\/mibbs.cgi?mo=n&fo=$1&ts=1&te=$thre_to$2/ig; $no_a++; } $no_a = 0; } elsif ($mode eq 'next' && $cgi_only == 0 ) { $no_a = 0; if ($pref::cgi_dr){ foreach (@boards) { $boards[$no_a] =~ s/\.\.\//$html_dr\//ig; $no_a++; } } else { foreach (@boards) { $boards[$no_a] =~ s/\.\.\//$log_dr\//ig; $no_a++; } } $no_a = 0; } my $boards_list =(<<"EOF"); @boards EOF $top_b_link = &mbbslib'Top_b_Link( $parce,$bd_col,$cltb_col,$keitai_t,$t_headline, $category,$boards_list,$space1,$border_width ); } if ($js_no != 1 && $bo_act != 2){ $js_cookie = &mbbslib'JS_Cookie($folder); } $pageheader = &mbbslib'Pageheader( $mode,$sub,'',$bbstitle,$style,$bgcolor,$bakgr_url, $bakgr,$js_cookie ); $top_ground_c = &mbbslib'Top_ground_c( $parce,$bd_col,$tbgc_a,$border_width ); if ($mode eq 'next') { if ($thre_st == 1 && $cgi_only != 1 ){ &top_ground ($sitetitle2,1); } elsif ($thre_st == 1 && $cgi_only == 1){ &top_ground ($sitetitle3,""); } elsif ($thre_st eq "all"){ &top_ground ($sitetitle3,""); } else { &top_ground ($sitetitle2,1); } }else{ &top_ground ($sitetitle3,""); } $lognewfile = &mbbslib'File_Name ($log_dr,$folder,"","new",$extension); open(LOG,$lognewfile) || &error("Open Error 3 : $lognewfile",$lock_a,'',''); @lognew = ; close(LOG); $b_t_t = $#lognew+1; if ($thre_st) { $tst_no = $thre_st; } else { $tst_no = 1; } $p_no_t = &mbbslib'Page_List( $b_t_t,$thre_to,$mode,$tst_no,$url_a,$script, $folder,"","","n",$cgi_only,$url_b ); if ( $thre_st eq "all" && $mode eq "next") { @lognew_t = @lognew ; } else { if ($mode eq 'next') { $t_no = $thre_st-1 ; }else{ $t_no = $thre_st; } if ($mode eq 'next') { $v_thr_ed = $thre_st + $b_thr -2; }else{ $v_thr_ed = $thre_st + $b_thr -1; } if ($v_thr_ed > $#lognew ){ $v_thr_ed = $#lognew; } @lognew_t = @lognew [$t_no..$v_thr_ed]; } $nolog = 0; foreach (@lognew_t) { $lognew_t[$nolog] =~ s/\n//g; $thre_no=$lognew_t[$nolog]; $dat_a = &mbbslib'File_Name ($log_dr,$folder,$thre_no,"a",$extension); $nolog++; $t_no++; if ($thre_st eq 'all' && $new_mark && $onep_mark == 0){ &mbbslib'Thre_Mark($dat_a,$mark_time); } elsif ($mode eq 'next' && $new_mark && $onep_mark == 0){ &mbbslib'Thre_Mark($dat_a,$mark_time); } elsif ($thre_st eq 'all' && $new_mark && $onep_mark == 1 && $t_no <= $thre_to){ &mbbslib'Thre_Mark($dat_a,$mark_time); } elsif ($mode eq 'next' && $new_mark && $onep_mark == 1 && $t_no <= $thre_to){ &mbbslib'Thre_Mark($dat_a,$mark_time); } open(LOG,$dat_a) || &error("Open Error 4 : $dat_a",$lock_a,'',''); @lines = ; close(LOG); ($sub,$no,$date,$name,$home_a,$email,$msg,$reto,$sato,$close,$updn,$sw_a,$sw_b) = split(/<>/, $lines[0]); $nolog2 = $nolog + 1; $nolog3 = $nolog - 1; ($list_new) = &mbbslib'Thread_list( $thre_nv,$url_a,$script,$folder,$thre_no,$onethre, "",$t_no,$sub,$reto,$thre_st,$thre_to ); if ($mode eq 'next') { print <<"EOF"; $list_new EOF }else { print HTML<<"EOF"; $list_new EOF } } if ($thre_st eq "all" && $mode eq "next") { $all_tv =(<<"EOF");  総てのスレッドタイトルを表\示中<\/font> EOF } else { $all_tv =(<<"EOF");  総てのスレッド EOF } if ($mode eq 'next') { $next1=$thre_st+$thre_to; $next2=$thre_ed+$thre_to; $back1=$next1-($thre_to*2); $back2=$next2-($thre_to*2); if ($back1 <= 1 && $cgi_only == 0 ) { $back_page = "$url_b$folder/$index" ; }else{ $back_page = "$url_a$script?mo=n&ts=$back1&te=$back2&fo=$folder"; } $logmax = @lognew; if ($next1 <= $logmax) { if ($thre_st ne "all") { $tp_slf=(<<"EOF");  スレッド総数 $b_t_t$thre_st - $thre_ed を表\示 EOF }else{ $tp_slf=(<<"EOF");  スレッド総数 $b_t_t EOF } if ($thre_st == 1) { $back_link = ""; $next_link =(<<"EOF"); 次のページ EOF $r_load_b = (<<"EOF"); $url_a$script?mo=n&ts=1&te=$thre_to&fo=$folder EOF $r_load = (<<"EOF");  リロード EOF } elsif ($thre_st eq "all") { $back_link = ""; $next_link = ""; $r_load_b = (<<"EOF"); $url_a$script?mo=n&ts=all&fo=$folder EOF $r_load = (<<"EOF");  リロード EOF } else { $back_link = (<<"EOF");  前のページ  EOF $next_link =(<<"EOF"); 次のページ EOF $r_load_b = (<<"EOF"); $url_a$script?mo=$mode&ts=$thre_st&te=$thre_ed&fo=$folder EOF $r_load = (<<"EOF");  リロード EOF } }else{ if ($thre_st ne "all") { $tp_slf=(<<"EOF");  スレッド総数 $b_t_t$thre_st - $logmax 表\示 EOF }else{ $tp_slf=(<<"EOF");  スレッド総数 $b_t_t EOF } if ( $thre_st eq "all" && $mode eq "next") { $back_link = ""; $next_link = ""; }elsif ($b_thr >= $logmax) { $back_link = ""; $all_tv = ""; $next_link = ""; }else{ $back_link =(<<"EOF");  前のページ EOF } if ($cgi_only){ $r_load = (<<"EOF");  リロード EOF $r_load_b = (<<"EOF"); $url_a$script?mo=n&fo=$folder&ts=1&te=$thre_to EOF } } print <<"EOF";
$go_search$r_load$back_link$p_no_t$next_link$all_tv$tp_slf EOF &mbbslib'Top_ground_End(out); }else{ $r_load_b = (<<"EOF"); $url_b$index EOF $back_link = (<<"EOF");  リロード  EOF $next_link = ''; $tp_slf = ''; if ($t_no > $thre_to){ $tsuginopage = 1; $thre_sta=$thre_to+1; $thre_eda=$thre_to*2; $next_link =(<<"EOF"); 次のページ  EOF $tp_slf=(<<"EOF");  スレッド総数 $b_t_t1 - $thre_to 表\示 EOF } print HTML<<"EOF";
$go_search$r_load$back_link$p_no_t$next_link$all_tv$tp_slf EOF my $tge = &mbbslib'Top_ground_End(back); print HTML<<"EOF"; $tge EOF } $nolog=0; $t_no=0; } sub top_ground { if( $bo_act > 0 || $_[1] eq '1') { $top_ground_b = &mbbslib'Top_ground_b( $parce,$tb_colb,"$keitai_p \ ",$_[0], $tf_col,$bbstitle,"",$space1,"$p_headline$p_top_p" ); $top_ground = "$top_ground_b$top_b_link"; }else{ $boards_hl=(<<"EOF"); $keitai_t$t_headline $category@boards EOF $ru_mes =(<<"EOF"); HOME  掲示板を外に出す EOF $mode_f = "regist"; if($cgi_only) { $loca_f =(<<"EOF"); EOF } else { $loca_f =(<<"EOF"); EOF } $pwd_f =""; if ($cate_link ne "off"){ $sitetitle3a = $_[0]; } elsif ($keitai) { $sitetitle3a = " $keitai_p   $_[0]"; } if ($js_no == 1 && $cgi_only == 1) { $js_on = 0; } elsif ( $thre_st eq "all" ) { $js_on = 0; }else{ $js_on = 1; } $top_ground = &mbbslib'ThreadMakeingForm ( $url_a,$script,$folder,$message,$cate_link, $boards_hl,$bd_col,$tp_col,$tb_col,$tf_col, $parce,$ru_mes,$sitetitle3a,$bbstitle,$space1, $mode_f,$loca_f,$pwd_f,$gc_name,$gc_email, $js_on,$cltb_col,$border_width,$g_home ); } if ($mode eq 'next') { print <<"EOF"; $pageheader $top_ground $top_ground_c EOF }else{ print HTML<<"EOF"; $pageheader $top_ground $top_ground_c EOF } } sub make_body { if ($mode eq 'next') { $thre_st = $thre_st; $ts_no = $thre_st-1; $thread_end_no = $thre_st+$thre_to-1; $te_no = $ts_no+$thre_to-1; } else { $thre_st = 0; $ts_no = $thre_st; $thread_end_no = $thre_to; $te_no = $thre_to-1; } if ($te_no > $#lognew) { $te_no = $#lognew; } @lognew_v = @lognew[$ts_no..$te_no]; $nothr =$ts_no; foreach (@lognew_v) { $lognew_v[$nolog] =~ s/\n//g; $thre_no=$lognew_v[$nolog]; $dat_a = &mbbslib'File_Name ($log_dr,$folder,$thre_no,"a",$extension); $dat_b = &mbbslib'File_Name ($log_dr,$folder,$thre_no,"b",$extension); $nolog++; $nothr++; open(LOG,$dat_a) || &error("Open Error 5 : $dat_a",$lock_a,'',''); @lines = ; close(LOG); ($sub,$no,$date,$name,$home_a,$email,$msg,$reto,$sato,$close,$updn,$sw_a,$sw_b) = split(/<>/, $lines[0]); $p_no=""; if(open(LOG,$dat_b)){ @b1st = ; close(LOG); $p_no = &mbbslib'Page_List( $reto,$onethre,$mode,$resstart,$url_a,$script, $folder,"&tn=$thre_no","","p","$cgi_only", $url_b ); $b1_on= 1; } $nolog2 = $nothr + 1; $nolog3 = $nothr - 1; $threadheader = &mbbslib'Threadheader( $nothr,$parcekiji,$bd_col,$tbgc_a,$tf_col,$thre_no, $sub,$p_no,$url_a,$script,$folder,$nolog2,$nolog3,"", $mode,$border_width ); &threadres_a($url_a); if ($mode eq 'next') { print <<"EOF"; $threadheader $threadres_a EOF }else{ print HTML<<"EOF"; $threadheader $threadres_a EOF } if($b1_on){ foreach $data (@b1st) { $count++; } $printing = $count - $onepage +1; foreach $data (@b1st) { $counting++; if ($counting > $printing){ &thread_res ($url_a); } } } $b1_on= 0; &res_form ($url_a); $pwd_f = ''; $thread_footer = &mbbslib'Thread_Footer ( $mode,$url_a,$reto,$onepage,$script,$folder,$thre_no, $onethre,$resnew,'',$r_load_b,$p_no,$pwd_f ); if ($mode eq 'next') { print <<"EOF"; $res_form $thread_footer EOF &mbbslib'Thread_End ( $space2,"out" ); }else{ $thread_end = &mbbslib'Thread_End ( $space2,"back" ); print HTML<<"EOF"; $res_form $thread_footer $thread_end EOF } } if ($mode eq 'next') { print <<"EOF";

$go_search$r_load$back_link$p_no_t$next_link$all_tv$tp_slf EOF &mbbslib'MekeFoot($sup_email,$sup_name,$script_name,$version,$kaiz,"out"); }else{ if ($tsuginopage){ print HTML<<"EOF";

$go_search$r_load$back_link$p_no_t$next_link$all_tv$tp_slf EOF } my $pagefoot = &mbbslib'MekeFoot ( $sup_email,$sup_name,$script_name,$version,$kaiz,"back" ); print HTML<<"EOF"; $pagefoot EOF close(HTML); } } sub list_point { if(open(LOG,$dat_a)){ @lines = ; close(LOG); ($sub,$no,$date,$name,$home_a,$email,$msg,$reto,$sato,$close,$updn,$sw_a,$sw_b) = split(/<>/, $lines[0]); }else{ &error_ko; } if ($resstart <= 1){$readfirst="yes";} $p_no = &mbbslib'Page_List( $reto,$onethre,$mode,$resstart,$url_sf,$script, $folder,"&tn=$thre_no","","p","",$url_b ); &kijifirst; if ($resend != 1){ if (open(LOG,$dat_b)){ @b1st = ; close(LOG); if ($resnew > 0 ){ if (@b1st > $resnew ){ $rst_no = @b1st-$resnew; }else{ $rst_no = 0; } $red_no = $#b1st; }elsif ($resstart > 0 ){ if ($resstart < 3){ $rst_no = 0; }else{ $rst_no = $resstart-2; } if ($resend == 0||$reto <= $resend){ $red_no = $#b1st; }else{ $red_no = $resend-2; } }else{ if ($resend){ $rst_no = 0; $red_no = $resend-2; }else{ $rst_no = 0; $red_no = $#b1st; } } if ($rst_no > $#b1st){ $rst_no = $#b1st; print <<"EOF";  リクエストがレス数を越えていますので最終レスを表\示しています。

EOF } if ($red_no > $#b1st){ $red_no = $#b1st; } @b1st_v = @b1st[$rst_no..$red_no]; foreach $data (@b1st_v) { &thread_res ($url_sf); } } } &res_form ($url_sf); $tob = 2; &point_menu; print <<"EOF"; $res_form
$point_menu EOF &mbbslib'Thread_End ( $space2,"out" ); } sub point_menu { my $pwd_f = ''; $thread_footer = &mbbslib'Thread_Footer ( $mode,$url_sf,$reto,$onepage,$script,$folder,$thre_no, $onethre,$resnew,'',$r_load_b,$p_no,$pwd_f ); if ($tob eq 1) { $tob_s=(<<"EOF");  ▼カッ飛び最後  EOF } else { $tob_s=(<<"EOF");  ▲カッ飛び先頭  EOF } $point_menu=(<<"EOF"); $bbstitleトップへ$tob_s $thread_footer EOF } sub kijifirst{ if ($js_no != 1){ $js_cookie = &mbbslib'JS_Cookie($folder); } $pageheader = &mbbslib'Pageheader( $mode,$sub,'',$bbstitle,$style,$bgcolor,$bakgr_url, $bakgr,$js_cookie ); if($mode eq "point"||$mode eq "next") { $sitetitle_a = $sitetitle2; }else{ $sitetitle_a = $sitetitle3; } my $top_ground_b = &mbbslib'Top_ground_b( $parce,$tb_colb,"$keitai_p \ ",$sitetitle_a, $tf_col,$bbstitle,"",$space1,"$p_headline$p_top_p" ); $tob = 1; &point_menu; my $threadheader = &mbbslib'Threadheader( $nothr,$parcekiji,$bd_col,$tbgc_a,$tf_col,$thre_no, $sub,$p_no,$url_a,$script,$folder,$nolog2,$nolog3,"", $mode,$border_width ); print <<"EOF"; $pageheader

$top_ground_b $point_menu $threadheader EOF if ($readfirst ne "no"){ &threadres_a($url_a); print <<"EOF"; $threadres_a EOF } } sub thread_res { chop($data); ($no,$date,$name,$home_a,$email,$msg,$sw_a,$sw_b) = split(/<>/,$data); &threadres_a ($_[0]); if ($mode eq 'next' || $mode eq 'point') { print <<"EOF"; $threadres_a EOF }else{ print HTML<<"EOF"; $threadres_a EOF } } sub threadres_a { $name = &mbbslib'Name_C_M ( $kote_check,$sw_a,$name_cola,$name_colb,$name_colc, $dn_col,$name,$email,$mode ); if ($g_home && $home_a){ $home_a = &mbbslib'Home_url ($home_a,$link_check); } else { $home_a =""; } if ($mode eq 'next' || $mode eq 'point') { $msg =~ s/\.\.\//\.\//g; } else { } if($all_p ne 'on') { if ($clip) { $aaa = &mbbslib'Sjis_Substr($msg,0,$clip,false,true); if($msg ne $aaa){ $msg = "$aaa\
<省略されました> [全文を見る]<\/a>"; $no = "$no<\/a>"; } } } if ($tagkey == 0 && $tag_act eq "on") { $msg =~ s/&/\&/g; $msg =~ s/<//g; } else { if($sw_b == 3) { $msg = &mbbslib'AutoLink($msg,$autolink,$link_check); $msg = &mbbslib'AppoRs($msg,$_[0],$script,$folder,$thre_no,""); } elsif($sw_b == 2) { $msg = &mbbslib'AppoRs($msg,$_[0],$script,$folder,$thre_no,""); } elsif($sw_b == 1) { $msg = &mbbslib'AutoLink($msg,$autolink,$link_check); } else { } } if($quote_color) { $msg = &mbbslib'QuoteColor ( $msg,$quote_color ); } $threadres_a=(<<"EOF");
$no: 名前:$name投稿日:$date$home_a
$msg $space3 EOF } sub res_form { if($bo_act == 2) { $res_form = ""; } elsif( $close == 1 ) { $res_form =&mbbslib'CommentForm_b ($cltb_col,$name_colb); } else { if($cgi_only) { $loca_f = "bo_c"; } else { $loca_f = "bo_f"; } $mode_f = "res"; $pwd_f = ''; $js_on = ''; if ($js_no == 1) { $js_on = 0; } else { $js_on = 1; } $res_form =&mbbslib'CommentForm ( $_[0],$script,$folder,$thre_no,$mode_f,$loca_f, $index_b,$pwd_f,$gc_name,$gc_email,$js_on,$g_home ); $js_on = ''; } } sub regist { $lognewfile = &mbbslib'File_Name ($log_dr,$folder,"","new",$extension); open(LOG,$lognewfile) || &error("Open Error 6 : $lognewfile",$lock_a,'',''); @lognew = ; close(LOG); foreach (@lognew) { $lognew[$nolog] =~ s/\n//g; if ($lognew[$nolog] >= $logf) { $logf = $lognew[$nolog] ; } $nolog++; } $loge=$logf+1; if ($loge < 10) { $loge = "000$loge"; } elsif ($loge < 100) { $loge = "00$loge"; } elsif ($loge < 1000) { $loge = "0$loge"; } $readf_a = &mbbslib'File_Name ($log_dr,$folder,$logf,"a",$extension); $writef_a = &mbbslib'File_Name ($log_dr,$folder,$loge,"a",$extension); $one=01; open(IN,"$readf_a") || &error("Open Error 7 : $readf_a",$lock_a,'',''); $top = ; ($tsub,$one,$tdate,$tname,$thome_a,$temail,$tcom,$treto,$tsato,$tclose,$tupdn,$tsw_a,$tsw_b) = split(/<>/, $top); if ($sub eq "$tsub" ) {&error("タイトルの二重投稿は禁止です。",$lock_a,'','');} if ($com eq "$tcom" ) {&error("コメントの二重投稿は禁止です。",$lock_a,'','');} open(INR,"$lognewfile") || &error("Open Error 8 : $lognewfile",$lock_a,'',''); @topd = ; open(OUTR,">$lognewfile") || &error("Write Error 9 : $lognewfile",$lock_a,'',''); print OUTR "$loge\n"; foreach $topp (@topd) {print OUTR "$topp";} close(OUTR); close(INR); $xcomx = $com; &auto_link_c($xcomx); $xcomx = ""; $resno = '01'; $reto = $resno; open(OUT,">$writef_a") || &error("Write Error 10 : $writef_a",$lock_a,'',''); print OUT "$sub<>$resno<>$date<>$name<>$home_a<>$email<>$com<>$reto<>$sato<>$close<>$updn<>$sw_a<>$sw_b\n"; if ($host_w){ $thre_no = $loge; &hostrec; } $i=0; while ($_ = ) { $i++; if ($i > $max-2) { last; } print OUT $_; } close(OUT); close(IN); chmod 0666,$writef_a; if($loc_scr eq "bo_f"||$loc_scr eq "") { $location = "$url_c$index#pagetop"; } elsif ($loc_scr eq "bo_c") { $location = "$url_sf$script?mo=n&ts=1&te=$thre_to&fo=$folder"; } elsif ($loc_scr eq "ha_f") { $location = "$url_sfheadline.cgi?fo=$folder"; } elsif ($loc_scr eq "ma_f") { $location = "$url_sf$mente?mo=n&ts=1&te=$thre_to&fo=$folder&pwd=$pwd"; } elsif ($loc_scr eq "i_f"||$loc_scr eq "w_f") { $location_1 = "$url_sf$script_i?mo=po&fo=$folder&tn=$loge"; $location_2 = "$url_sf$script_i?fo=$folder"; $location_3 = "$url_sf$script_i"; } my $date_g = &mbbslib'Cookie_Time($c_days); print "Set-Cookie: $folder=$c_name,$email; $s_cookie expires=$date_g\n"; if($mailing){ if ($loc_scr eq "ma_f" || $loc_scr eq "mp_f"){ if($m_from_admin){ &mail_to ; } } else { &mail_to ; } } } sub resregist_a { if ($base_url) { &out_url;} $writef_a = &mbbslib'File_Name ($log_dr,$folder,$thre_no,"a",$extension); $writef_b = &mbbslib'File_Name ($log_dr,$folder,$thre_no,"b",$extension); open(INA,"$writef_a") || &error("Open Error 11 : $writef_a",$lock_a,'',''); $topa = ; ($isub,$ino,$idate,$iname,$ihome_a,$iemail,$icom,$ireto,$isato,$iclose,$iupdn,$isw_a,$isw_b) = split(/<>/, $topa); if ($iclose == 1) { if ($pwd ne $master_pass) { &error("只今、このスレッドへの書きこみは、出来ません。",$lock_a,'',''); } } if ( $bo_act > 1 && $iclose ne "0"){ if ($pwd ne "$master_pass") { &error("只今、このスレッドへの書きこみは、出来ません。",$lock_a,'',''); } } } sub resregist_b { if (open(INB,"$writef_b")){ @top = ; foreach $top (@top) { ($resno,$tdate,$tname,$thome_a,$temail,$tcom,$tsw_a,$tsw_b) = split(/<>/, $top); if ($not_dup_com == 1 && $com eq "$tcom") { &error("コメントの完全二重投稿は禁止です。",$lock_a,'',''); } } } else {$resno="01";} $sw_b = &auto_link_c($com); $sw_b = &appo_rs_c($com,$sw_b); $resno++; if ($t_updn ne 'on') { if ($email ne 'sage'){ $lognewfile = &mbbslib'File_Name ($log_dr,$folder,"","new",$extension); open(INR,"$lognewfile") || &error("Open Error 12 : $lognewfile",$lock_a,'',''); @topd = ; open(OUTR,">$lognewfile") || &error("Write Error 13 : $lognewfile",$lock_a,'',''); print OUTR "$thre_no\n"; foreach $topd (@topd) { $topd =~ s/\n//g; if ($thre_no ne $topd){ print OUTR "$topd\n"; } } close(OUTR); close(INR); }else{ if($sw_a != 1 && $sw_a != 2) { $sw_a = 3; } } }else{ if($sw_a != 1 && $sw_a != 2 ) { $sw_a = 3; } } open(OUTB,">>$writef_b") || &error("Write Error 14 : $writef_b",$lock_a,'',''); print OUTB "$resno<>$date<>$name<>$home_a<>$email<>$com<>$sw_a<>$sw_b\n"; $oreto = $resno; open(OUTA,"+<$writef_a") || &error("Write Error 15 : $writef_a",$lock_a,'',''); print OUTA "$isub<>$ino<>$idate<>$iname<>$ihome_a<>$iemail<>$icom<>$oreto<>$isato<>$iclose<>$iupdn<>$isw_a<>$isw_b\n"; if ($host_w){&hostrec;} close(OUTA); close(OUTB); close(INB); close(INA); chmod 0666,$writef_a; chmod 0666,$writef_b; if($loc_scr eq "bo_f"||$loc_scr eq "") { if ($b_file > 0) { $location = "$url_sf$script?mo=p&fo=$folder&tn=$b_file&rn=$onethre"; }else{ $location = "$url_c$index#pagetop"; } } elsif ($loc_scr eq "bo_c") { if ($b_file > 0) { $location = "$url_sf$script?mo=p&fo=$folder&tn=$b_file&rn=$onethre"; }else{ $location = "$url_sf$script?mo=n&ts=1&te=$thre_to&fo=$folder"; } } elsif ($loc_scr eq "ma_f"){ $location = "$url_sf$mente?mo=n&ts=1&te=$thre_to&fo=$folder&pwd=$pwd"; } elsif ($loc_scr eq "mp_f"){ $location = "$url_sf$mente?mo=p&fo=$folder&tn=$thre_no&pwd=$pwd"; } elsif ($loc_scr eq "iv_f"||$loc_scr eq "wv_f") { $location_1 = "$url_sf$script_i?mo=po&fo=$folder&tn=$thre_no"; $location_2 = "$url_sf$script_i?fo=$folder"; $location_3 = "$url_sf$script_i"; } my $date_g = &mbbslib'Cookie_Time($c_days); print "Set-Cookie: $folder=$c_name,$email; $s_cookie expires=$date_g\n"; if($mailing){ if ($loc_scr eq "ma_f" || $loc_scr eq "mp_f"){ if($m_from_admin){ &mail_to ; } } else { &mail_to ; } } } sub hostcheck{ $r_host = $ENV{'REMOTE_HOST'}; $r_addr = $ENV{'REMOTE_ADDR'}; if ($r_host eq '') { $r_host = $r_addr; } if ($r_host eq $r_addr) { $r_host = gethostbyaddr(pack('C4',split(/\./,$r_host)),2) || $r_addr; } $log = "$log_dr/$folder/writehost\.$extension"; $log =~ s/\s//g; if (open(LOG,$log)){ @logs = ; close(LOG); $logs[0]=~ s/\s//g; if ($r_host =~ /$logs[0]/){ &error("連続でスレッドを作ることはできません",$lock_a,'',''); } } $writehost = sprintf("$log_dr/$folder/writehost.$extension"); if (open(writehost,"> $writehost")) { print writehost "$r_host\n"; close(writehost); chmod 0666,$writehost; } } sub hostrec { $r_host = $ENV{'REMOTE_HOST'}; $r_addr = $ENV{'REMOTE_ADDR'}; if ($r_host eq '') { $r_host = $r_addr; } if ($r_host eq $r_addr) { $r_host = gethostbyaddr(pack('C4',split(/\./,$r_host)),2) || $r_addr; } $writef_c = &mbbslib'File_Name ($log_dr,$folder,$thre_no,"c",$extension); $mark_no = $resno; $writehost = sprintf("$writef_c"); open(OUTC,">>$writehost") || &error("Write Error 16 : $writehost",$lock_a,'',''); print OUTC "$mark_no<>$r_host<>$date\n"; close(OUTC); chmod 0666,$writef_c; } sub auto_link_c { my $xcomx = $_[0]; $xcomx =~ s/([^=^\"]|^)(http\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#]+)/$1xurlx$2/g; $xcomx =~ s/([^=^\"]|^)(ftp\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#]+)/$1xurlx$2/g; if($xcomx ne $_[0]) { $sw_b = 1;} return $sw_b; } sub appo_rs_c { my ($xcomx,$com_a,$com_b,$com_c,$com_d); $xcomx = $_[0]; if ($xcomx =~ /(.*)(>>)([0-9]+)(.*)/) { $com_a=$4; } if ($com_a =~ /^(.)(.*)/) { $com_b=$1; $com_c=$2; } if ($com_c =~ /^(.)(.*)/) { $com_d=$1; } if ($com_b eq "-" && $com_d > 0) { $xcomx =~ s/(.*)(>>)([0-9]+)(\-)([0-9]+)(.*)/appo/g; }else{ $xcomx =~ s/>>([0-9]+)/appo/g; } if($xcomx ne $_[0]) { if ($_[1] == 1) { $_[1] = 3; }else{ $_[1] = 2;} } return $_[1]; } sub out_url { $h_agent = substr($ENV{'HTTP_USER_AGENT'},0,1); $ref_url = $ENV{'HTTP_REFERER'}; $ref_url =~ s/\?(.|\n)*//ig; $ref_url =~ s/\%7E/\~/ig; if ($ref_url !~ $base_url) { if ($keitai == 1 && [$h_agent eq 'D' ||$h_agent eq 'J'] ) { }else{ &error("外から書き込まないでちょ。ーー;",$lock_a,'',''); } } } sub f_lock { if ($do_fl) { $f_l_n = ""; $lock_a = ""; $f_l_n = "$log_dr/$folder/$file_lock"; $lock_a = &mbbslib'File_Lock_s($f_l_n); if ($lock_a == 0) { &error("大変混み合っております。
再投稿してください。",$lock_a,'',''); } $SIG{'PIPE'} = $SIG{'INT'} = $SIG{'HUP'} = $SIG{'QUIT'} = $SIG{'TERM'} = "sigexit"; } } sub sigexit { if ($lock_a == 1) { rmdir($f_l_n); $lock_a = 0; } exit; } sub error_ko { if ($_[1] == 1) { rmdir($f_l_n); } print <<"EOF";

■ こまっちゃったエラー ■

そんなスレッドないっすよ。


お勧めのスレッドを出そうかなぁ〜とも思ったんですが・・・
それじゃーやっぱしあれでしょー。

下記内容を確認の上、再度挑戦してください。
  ・スレッドが削除されたか別の板に移動された。
  ・掲示板を間違えた。
  ・スレッド番号を間違えた

レス・ポイント表\示 の使い方も参考にしてください。

EOF exit; } sub error { if ($_[1] == 1) { rmdir($f_l_n); } my ($e_logo,$e_title); if ($_[3] eq 'g') { $e_title = "なにすんねん"; $e_logo = "ゴラー"; }else{ $e_title = "申\し訳ございません"; $e_logo = "エラー"; } my ($er_m_a); my $error_a = "$e_logoのお知らせ"; my $error_b = "\申\し訳あません。"; my $error_c = "$e_logoです。"; my $error_d = ""; if ($_[2]){ $error_d = "再投稿願います。"; } if ($loc_scr eq "i_f" || $loc_scr eq "iv_f") { print "Content-type: text/html; charset=Shift_JIS\n\n"; print <<"EOF"; $error_a
$_[0]

$error_b
$error_c
$error_d EOF } elsif ($loc_scr eq "w_f" || $loc_scr eq "wv_f") { print "Content-type: text/x-hdml; charset=Shift_JIS\n\n"; print <<"EOF";
$_[0]
−−−−−−−−−−
\申\し訳あません。
$error_b
$error_c
$error_d EOF }else{ if ($mode eq "regist" || $mode eq "res"){ $er_m_a = ""; if ($_[2] != 1 ){ $er_m_a = "
再投稿をお願いいたします。"; } } if ($h_ct) { print "
\n"; }else{ print "Content-type: text/html; charset=Shift_JIS\n\n"; } print <<"EOF"; $error_a

■   $e_title   $e_logo   ■

$_[0]

EOF } exit; } sub mail_to { my ($sub_m); unless ($mailto) {$mailto = $sup_email;} $mail_title = "$sitetitle1 投稿通知【$date】"; &jcode'convert(*mail_title,'jis'); my $report =(<<"EOF"); To: $mailto From: $sup_email Subject: $mail_title MIME-Version: 1.0 Content-type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit EOF if($sub){ $sub_m = $sub; } else { $sub_m = $isub; } if($resno eq '01'){ $report .=(<<"EOF"); $date 新規にスレッドが作成されました。 ■掲示板 名: $bbstitle ■スレッド名: $sub_m EOF } else { $report .=(<<"EOF"); $date に新規投稿がありました。 ■掲示板 名: $bbstitle ■スレッド名: $sub_m ■レス 番号: $resno EOF } if($mail_contents == 0 || $mail_contents == 2){ if($resno eq '01'){ $report .=(<<"EOF"); ■スレッドのURL $script_path$script?mo=p&fo=$folder&tn=$thre_no&rn=$onethre EOF } else { $report .=(<<"EOF"); ■スレッドのURL $script_path$script?mo=p&fo=$folder&tn=$thre_no&rn=$onethre ■投稿のみのURL $script_path$script?mo=p&fo=$folder&tn=$thre_no&rs=$resno&re=$resno&rf=no&al=on EOF } } if($mail_contents == 1 || $mail_contents == 2){ $com =~ s/
/\n/g; $com =~ s/<//g; $com =~ s/&/&/g; $report .=(<<"EOF"); (投稿内容) ■お名前 : $name ■E-mail : $email ■URL 欄 : $home_a ■コメント: $com EOF } open(MAIL,"| $mailsoft_path -oi -t") || &error("sendmailへのパスが間違っています。",$lock_a,'',''); print MAIL $report; close(MAIL); }

大変\申\し訳ございません。$e_logoになってしまいました。 $er_m_a