#!/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";
投稿確認をする
スレッドを一覧
掲示板を一覧する
$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 =
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
下記内容を確認の上、再度挑戦してください。
レス・ポイント表\示 の使い方も参考にしてください。
$_[0]
$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
<省略されました> [全文を見る]<\/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");
再投稿してください。",$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";
お勧めのスレッドを出そうかなぁ〜とも思ったんですが・・・
それじゃーやっぱしあれでしょー。
・スレッドが削除されたか別の板に移動された。
・掲示板を間違えた。
・スレッド番号を間違えた
$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";
\申\し訳あません。
$error_b
$error_c
$error_d
再投稿をお願いいたします。";
}
}
if ($h_ct) {
print "
\n";
}else{
print "Content-type: text/html; charset=Shift_JIS\n\n";
}
print <<"EOF";
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/
大変\申\し訳ございません。$e_logoになってしまいました。
$er_m_a
/\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);
}