# pcom.pl 最終更新 2008/07/01 #┌───────────────────────────────── #│ E-PAD (pcom.pl) - 2006/07/22 #│ Copyright (c) KentWeb #│ webmaster@kent-web.com #│ http://www.kent-web.com/ #└───────────────────────────────── #------------------------------------------------- # 記事表示 #------------------------------------------------- sub html { local($flag,$i,$next,$back,@view,%oya,%nam,%dat,%tim); # スレッド個別表示の場合 if ($mode eq "view") { &view; } # 新規投稿フォーム elsif ($mode eq 'shinki') { &shinki; } # 記事内のリンク・フォームからの修正・削除の認証 elsif ($mode eq 'ninsho_edt' || $mode eq 'ninsho_del') { &ninsho_edt_del; } &header_js; print "
\n"; print "$banner1

\n" if ($banner1 ne ""); print <$title


[トップに戻る] EOM if ($rss_out >= 1) { print qq|[RSS]\n|; } print <留意事項] [ワード検索] EOM if ($pastkey) { print qq |[過去ログ]\n|; } if ($shinkiForm == 1) { print qq |[新規投稿]\n|; } if ($WriteCnt >= 1) { print qq |[投稿ランキング]\n|; } print <管理用]
EOM # 投稿フォーム if (!$shinkiForm) { &form(); } if ($page eq "") { $page = 0; } print "
\n"; # 通常 if (!$reson) { # 記事抽出 $i=0; local(%res,%reno); open(IN,"$logfile") || &error("Open Error: $logfile"); while () { local($no,$no2,$dat,$nam,$tim) = (split(/<>/))[0,1,2,3,10]; if (!$no2) { $i++; } if ($i < $page + 1) { next; } if ($i > $page + $pageLog) { next; } # レス記事 if ($no2) { $nam{$no2} = $nam; $dat{$no2} = $dat; $tim{$no2} = $tim; if ($bbstype == 3) { $res{$no} = $_; # 新しいレスから表示 if ($meslast_p == 1) { $reno{$no2} = "$no," . $reno{$no2};} # 初めのレスから表示(e-PAD標準) else { $reno{$no2} .= "$no,"; } } next; } push(@view,$_); } close(IN); # 記事表示 $flag=0; foreach (@view) { local($no,$no2,$dat,$nam,$eml,$sub,$com, $url,$hos,$pw,$tim,$typ,$res,$chk,$col) = split(/<>/); # ログデータ追加に伴う処置 $col =~ s/\r//g; $col =~ s/\n//g; # 未認証の記事 if ($adChk && $chk == 1) { &chkMae; } if ($autolink) { &auto_link($com); } # 絵文字 $sub = &o2p($sub); $nam = &o2p($nam); $com = &o2p($com); if (!$no2 && $flag) { print "\n"; $flag=1; } print "

\n"; $flag=1; print "$sub "; print "投稿者:$nam 投稿日:$dat  "; print "No.$no  "; if ($eml) { &eml_henkan2($eml,$nam,$no); } print "\"Home\"\n" if ($url); print "  [返信]"; if ($new_time > 0) { my $newsign = &get_newsign($tim); if ($newsign) { print "$newsign"; } } print "
\n"; print "\n"; print ""; if ($col ne '') { print "\n"; } else { print "\n"; } print <<"EOM"; EOM if ($hostView >= 1 || $UAView >= 1) { print qq |\n|; } # 返信 if ($res > 0) { # 記事全表示 if ($bbstype == 3) { foreach $reno ( split(/,/, $reno{$no}) ) { local($no,$no2,$dat,$nam,$eml,$sub,$com,$url,$hos, $pw,$tim,$typ,$res,$chk,$col) = split(/<>/, $res{$reno}); # ログデータ追加に伴う処置 $col =~ s/\r//g; $col =~ s/\n//g; # 未認証の記事 if ($adChk && $chk == 1) { &chkMae; } if ($autolink) { &auto_link($com); } # 絵文字 $sub = &o2p($sub); $nam = &o2p($nam); $com = &o2p($com); print "\n"; } else { print "
$com\n"; } print <<"EOM"; EOM if ($hostView >= 1 || $UAView >= 1) { print qq |\n|; } } # 記事数のみ(リンク表示) } else { print "\n"; } } print "
$com$com [修正]
[削除]
\n|; &hosUA_out($hos); print qq |

$sub "; print "投稿者:$nam 投稿日:$dat  "; print "No.$no  "; if ($eml) { &eml_henkan2($eml,$nam,$no); } print "\"Home\"\n" if ($url); if ($new_time > 0) { my $newsign = &get_newsign($tim); if ($newsign) { print "$newsign"; } } if ($col ne '') { print "
$com
[修正]
[削除]
\n|; &hosUA_out($hos); print qq |
"; print "[レス表\示($res)]\n"; print "更新日:$dat{$no} - $nam{$no}"; if ($new_time > 0) { my $newsign = &get_newsign($tim{$no}); if ($newsign) { print "$newsign"; } } print "
\n"; } print "

\n"; # レスも一緒に表示 } else { $i=0; open(IN,"$logfile") || &error("Open Error: $logfile"); while () { local($no,$no2,$dat,$nam,$tim) = (split(/<>/))[0,1,2,3,10]; if (!$no2) { $i++; } if ($i < $page + 1) { next; } if ($i > $page + $pageLog) { next; } # レス記事 if ($no2) { $nam{$no2} = $nam; $dat{$no2} = $dat; $tim{$no2} = $tim; if ($bbstype == 3) { $res{$no} = $_; # 新しいレスから表示 if ($meslast_p == 1) { $reno{$no2} = "$no," . $reno{$no2};} # 初めのレスから表示(e-PAD標準) else { $reno{$no2} .= "$no,"; } } next; } push(@view,$_); } close(IN); foreach (@view) { local($no,$no2,$dat,$nam,$eml,$sub,$com, $url,$hos,$pw,$tim,$typ,$res,$chk,$col) = split(/<>/); # ログデータ追加に伴う処置 $col =~ s/\r//g; $col =~ s/\n//g; # 未認証の記事 if ($adChk && $chk == 1) { &chkMae; } if ($autolink) { &auto_link($com); } # 絵文字 $sub = &o2p($sub); $nam = &o2p($nam); $com = &o2p($com); if (!$no2 && $flag) { print "\n"; $flag=1; } if (!$no2) { print "

\n"; $flag=1; } else { print qq |
\n|; } print "\n"; if ($no2) { print ""; } print "\n"; print ""; if ($col ne '') { print "\n"; } else { print "\n"; } print <<"EOM";
   $sub "; print "投稿者:$nam 投稿日:$dat  "; print "No.$no  "; if ($eml) { &eml_henkan2($eml,$nam,$no); } print "Home\n" if ($url); if (!$no2) { print " [返信]"; } if ($new_time > 0) { my $newsign = &get_newsign($tim); if ($newsign) { print "$newsign"; } } print "
$com$com [修正]
[削除]
EOM if ($hostView >= 1 || $UAView >= 1) { print qq |
\n|; &hosUA_out($hos); print qq |
\n|; } # 返信 if ($res > 0) { # 記事全表示 foreach $reno ( split(/,/, $reno{$no}) ) { local($no,$no2,$dat,$nam,$eml,$sub,$com,$url,$hos, $pw,$tim,$typ,$res,$chk,$col) = split(/<>/, $res{$reno}); # ログデータ追加に伴う処置 $col =~ s/\r//g; $col =~ s/\n//g; # 未認証の記事 if ($adChk && $chk == 1) { &chkMae; } if ($autolink) { &auto_link($com); } # 絵文字 $sub = &o2p($sub); $nam = &o2p($nam); $com = &o2p($com); if (!$no2) { print "

\n"; $flag=1; } else { print qq |
\n|; } print "\n"; if ($no2) { print ""; } print "\n"; print ""; if ($col ne '') { print "\n"; } else { print "\n"; } print <<"EOM";
   $sub "; print "投稿者:$nam 投稿日:$dat  "; print "No.$no  "; if ($eml) { &eml_henkan2($eml,$nam,$no); } print "Home\n" if ($url); if (!$no2) { print " [返信]"; } if ($new_time > 0) { my $newsign = &get_newsign($tim); if ($newsign) { print "$newsign"; } } print "
$com$com [修正]
[削除]
EOM if ($hostView >= 1 || $UAView >= 1) { print qq |
\n|; &hosUA_out($hos); print qq |
\n|; } } } } print "

\n"; } # ページ繰越定義 my ($m,$n); my $next = $page + $pageLog; my $back = $page - $pageLog; print "\n"; my $flag=0; if ($back >= 0) { if ($in{'bl'}) { $m = $in{'bl'}; } else { $m = 0; } # 1ページ目の場合 if ($in{'page'} eq $pageLog*10*$m) { $m--; } $flag=1; print "\n"; } if ($next < $i) { if ($in{'bl'}) { $n = $in{'bl'}; } else { $n = 0; } # 10ページ目の場合 if ($in{'page'} eq ($pageLog*10*$n)+($pageLog*9)) { $n++; } $flag=1; print "\n"; } # ページ移動ボタン表示 if ($flag) { print "\n"; } else { print "\n"; } print <
記事No 暗証キー
"; print "
\n"; print "\n"; print "\n"; print "
"; print "
\n"; print "\n"; print "\n"; print "
\n"; &mvbtn("$script?page=", $i, $pageLog); print "(次のページはありません)

$banner2

- e-PAD -
Modified by Tambo

EOM exit; } #------------------------------------------------- # スレッド個別表示 #------------------------------------------------- sub view { &header_js; print < EOM # ログ展開 local(@view); my ($oya); open(IN,"$logfile") || &error("Open Error: $logfile"); while () { local($no,$no2) = split(/<>/); # 該当スレッド取得 # if ($in{'no'} == $no || $in{'no'} == $no2) { # push(@view,$_); # } # 親記事 if ($in{'no'} == $no) { # 新しいレスから表示 if ($meslast_p == 1) { $oya = $_; } # 初めのレスから表示(e-PAD標準) else { push(@view,$_); } # レス記事 } elsif ($in{'no'} == $no2) { push(@view,$_); } } close(IN); # 新しいレスから表示 if ($meslast_p == 1) { if ($oya) { push (@view,$oya); } @view = reverse(@view); } if (!@view) { &error('該当の記事が存在しません'); } # 返信モード if ($in{'res'} == 1) { local($no,$no2,$resub,$recom,$chk) = (split(/<>/,$view[0]))[0,1,5,6,13]; if ($adChk && $chk == 1) { &error('認証されるまで返信できません'); } # 標準タイプ if ($bbstype == 1) { $resub =~ s/^Re:\[\d+\]\s*//g; $resub = "Re:[$no] $resub"; $recom = "> $recom"; $recom =~ s/
/\n> /ig; ## $recom = &o2ije($recom); # 絵文字復元(投稿用文字) $recom = &o2ije_2($recom); # レスタイプ } else { if ($resub !~ /^Re:/i) { $resub = "Re: $resub"; } $recom = ""; } ## $resub = &o2ije($resub); # 絵文字復元(投稿用文字) $resub = &o2ije_2($resub); if ($no2) { print <

この記事には返信できません


EOM } else { # 投稿フォーム &form($resub,$recom); } } print <
EOM # 表示開始 foreach (@view) { local($no,$no2,$dat,$nam,$eml,$sub,$com, $url,$hos,$pw,$tim,$typ,$res,$chk,$col) = split(/<>/); # ログデータ追加に伴う処置 $col =~ s/\r//g; $col =~ s/\n//g; # 未認証の記事 if ($adChk && $chk == 1) { &chkMae; } if ($autolink) { &auto_link($com); } # 絵文字 $sub = &o2p($sub); $nam = &o2p($nam); $com = &o2p($com); print "\n"; if ($no2) { print qq |
\n|; print ""; } print "\n"; print ""; if ($col ne '') { print "\n"; } else { print "\n"; } print <<"EOM";
   $sub "; print "投稿者:$nam 投稿日:$dat  "; print "No.$no  "; ### print "\"Mail\"\n" if ($eml); if ($eml) { &eml_henkan2($eml,$nam,$no); } print "\"Home\"\n" if ($url); if (!$no2) { print " [返信]"; } if ($new_time > 0) { my $newsign = &get_newsign($tim); if ($newsign) { print "$newsign"; } } print "
$com$com [修正]
[削除]
EOM if ($hostView >= 1 || $UAView >= 1) { print qq |
\n|; &hosUA_out($hos); print qq |
\n|; } } print <
EOM exit; } #------------------------------------------------- # 過去ログ表示 #------------------------------------------------- sub past { if (!$pastkey) { &error('過去ログ機能\は無効です'); } my $mode2; if ($mode eq 'past_v') { $mode2 = 'past'; } else { $mode2 = $mode; } open(IN,"$nofile") || &error("Open Error: $nofile"); my $pastno = ; close(IN); $in{'pastlog'} =~ s/\D//g; if (!$in{'pastlog'}) { $in{'pastlog'} = $pastno; } $in{'pastlog'} = sprintf( '%04d' , $in{'pastlog'} ); my $file = sprintf("%s/%04d\.cgi", $pastdir,$in{'pastlog'}); &header_js; print <<"EOM"; [掲示板に戻る]
過去ログ
検 索
\n|; print < 条件 表\示
EOM # 検索実行 if ($in{'word'} ne "") { # 入力内容整理 $in{'word'} =~ s/\x81\x40/ /g; my @wd = split(/\s+/, $in{'word'}); # 検索 print "

\n"; my $i=0; open(IN,"$file") || &error("Open Error: $file"); while () { local($no,$no2,$dat,$nam,$eml,$sub,$com, $url,$hos,$pw,$tim,$typ,$res,$chk,$col) = split(/<>/); # ログデータ追加に伴う処置 $col =~ s/\r//g; $col =~ s/\n//g; # 未認証の記事 if ($adChk && $chk == 1) { &chkMae; } my $flag=0; foreach my $wd (@wd) { if ($chk == 1) { last; } if (index("$nam $eml $sub $com $url",$wd) >= 0) { $flag=1; if ($in{'cond'} eq 'OR') { last; } } else { if ($in{'cond'} eq 'AND') { $flag=0; last; } } } # 検索にヒット if ($flag) { $i++; if ($i < $page + 1) { next; } if ($i > $page + $in{'view'}) { next; } if ($eml) { $nam = &eml_henkan($eml,$nam,$no); } # 絵文字 $sub = &o2p($sub); $nam = &o2p($nam); $com = &o2p($com); print "

[$no] "; print "$sub "; print "投稿者:$nam 投稿日:$dat

"; if ($col ne '') { print qq |$com|; } else { print $com; } print "

$url" if ($url); print "

\n"; } } close(IN); print "


検索結果:$i
\n"; my $next = $page + $in{'view'}; my $back = $page - $in{'view'}; my $enwd = &url_enc($in{'word'}); if ($back >= 0) { print "[前の$in{'view'}件]\n"; } if ($next < $i) { print "[次の$in{'view'}件]\n"; } print "\n\n"; exit; } print qq |
\n【標準表\示/一覧表\示】\n|; my $i=0; # 一覧表示 if ($mode eq 'past_p') { print qq |
\n|; $pageLog *= 2; open(IN,"$file") || &error("Open Error: $file"); while () { local($no,$no2,$dat,$nam,$eml,$sub,$com, $url,$hos,$pw,$tim,$typ,$res,$chk) = split(/<>/); if (!$no2) { $i++; } if ($i < $page + 1) { next; } if ($i > $page + $pageLog) { next; } if (!$no2) { # 未認証の記事 if ($adChk && $chk == 1) { &chkMae; } # 絵文字 $sub = &o2p($sub); $nam = &o2p($nam); # 記事を表示 print qq |$sub】  $nam  $dat  No.$no|; if ($res) { print qq |  (Res:$res)|; } print qq |
\n|; } } close(IN); print qq |
\n|; # スレッド全体表示 } elsif ($mode eq 'past_v') { if ($in{'no'} eq '') { &error("記事番号が指定されていません"); } print "
\n"; my $flag; open(IN,"$file") || &error("Open Error: $file"); while () { local($no,$no2,$dat,$nam,$eml,$sub,$com, $url,$hos,$pw,$tim,$typ,$res,$chk,$col) = split(/<>/); if ($no eq $in{'no'} || $no2 eq $in{'no'}) { $flag=1; # ログデータ追加に伴う処置 $col =~ s/\r//g; $col =~ s/\n//g; # 未認証の記事 if ($adChk && $chk == 1) { &chkMae; } if ($autolink) { &auto_link($com); } # 絵文字 $sub = &o2p($sub); $nam = &o2p($nam); $com = &o2p($com); if (!$no2) { print "

\n"; } else { print qq |
\n|; } print "\n"; if ($no2) { print ""; } print "\n"; print ""; if ($col ne '') { print qq |
   $sub "; print "投稿者:$nam 投稿日:$dat  "; print "No.$no  "; if ($eml) { &eml_henkan2($eml,$nam,$no); } print "Home\n" if ($url); if ($new_time > 0) { my $newsign = &get_newsign($tim); if ($newsign) { print "$newsign"; } } print "
$com
\n|; } else { print qq |
$com
\n|; } if ($hostView >= 1 || $UAView >= 1) { print qq |

\n|; &hosUA_out($hos); print qq |
\n|; } } } close(IN); if (!$flag) { &error('該当の記事が見つかりません'); } else { print "

\n

\n"; } print <
EOM exit; # 標準表示 } else { print "
\n"; my $flag; open(IN,"$file") || &error("Open Error: $file"); while () { local($no,$no2,$dat,$nam,$eml,$sub,$com, $url,$hos,$pw,$tim,$typ,$res,$chk,$col) = split(/<>/); if (!$no2) { $i++; } if ($i < $page + 1) { next; } if ($i > $page + $pageLog) { next; } # ログデータ追加に伴う処置 $col =~ s/\r//g; $col =~ s/\n//g; # 未認証の記事 if ($adChk && $chk == 1) { &chkMae; } if ($autolink) { &auto_link($com); } # 絵文字 $sub = &o2p($sub); $nam = &o2p($nam); $com = &o2p($com); if (!$no2 && $flag) { print "\n"; $flag=1; } if (!$no2) { print "

\n"; $flag=1; } else { print qq |
\n|; } print "\n"; if ($no2) { print ""; } print "\n"; print ""; if ($col ne '') { print qq |
   $sub "; print "投稿者:$nam 投稿日:$dat  "; print "No.$no  "; if ($eml) { &eml_henkan2($eml,$nam,$no); } print "Home\n" if ($url); if ($new_time > 0) { my $newsign = &get_newsign($tim); if ($newsign) { print "$newsign"; } } print "
$com
\n|; } else { print qq |
$com
\n|; } if ($hostView >= 1 || $UAView >= 1) { print qq |

\n|; &hosUA_out($hos); print qq |
\n|; } } close(IN); print "
\n
\n"; } # ページ繰越定義 my ($m,$n); my $next = $page + $pageLog; my $back = $page - $pageLog; print "
\n\n"; my $flag=0; if ($back >= 0) { if ($in{'bl'}) { $m = $in{'bl'}; } else { $m = 0; } # 1ページ目の場合 if ($in{'page'} eq $pageLog*10*$m) { $m--; } $flag=1; print <<"EOM"; EOM } if ($next < $i) { if ($in{'bl'}) { $n = $in{'bl'}; } else { $n = 0; } # 10ページ目の場合 if ($in{'page'} eq ($pageLog*10*$n)+($pageLog*9)) { $n++; } $flag=1; print <<"EOM"; EOM } # ページ移動ボタン表示 if ($flag) { print "\n"; } else { print "\n"; } print <
\n"; &mvbtn("$script?mode=$mode2&pastlog=$in{'pastlog'}&page=", $i, $pageLog); print "(次のページはありません)
EOM exit; } #------------------------------------------------- # 投稿フォーム #------------------------------------------------- sub form { local($resub,$recom) = @_; # クッキー情報を取得 local($cnam,$ceml,$curl,$cpwd,$ccol) = &get_cookie; if (!$curl) { $curl = "http://"; } if ($emform) { print <
EOM } else { print < EOM } if ($bbstype > 1 && $in{'res'}) { print "\n"; } my ($a1,$a2,$a3) = &a1a2Get; print "\n"; print "\n"; &form2($cnam,$ceml,$resub,$recom,$curl); # 文字色情報 if ($color ne '') { my @col = split(/\s+/, $color); if ($ccol eq "" || $ccol >= @col) { $ccol = 0; } # 文字色が1つの場合は選択肢を表示しない if (@col == 1) { print qq |\n|; } else { print qq |文字色\n|; foreach (0 .. $#col) { if ($ccol eq $col[$_] || $ccol eq $_) { print qq ||; print qq |\n|; } else { print qq ||; print qq |\n|; } } print qq |\n|; } } print < 暗証キー     クッキー情報を保存 EOM # 投稿キー if ($regist_key >= 1) { require $regkeypl; my ($str_plain,$str_crypt,$regi_code) = &pcp_makekey; print <投稿キー EOM if ($regist_key == 1 || $regist_key == 2) { print qq |(投稿時 投稿キー を入力してください)|; } elsif ($regist_key > 2) { print qq |(投稿時 $regi_code を入力してください)|; } } print < EOM } #------------------------------------------------- # 入力フォーム #------------------------------------------------- sub form2 { my ($nam,$eml,$sub,$com,$url) = @_; if ($url eq '') { $url = 'http://'; } if ($com =~ /^
/) { $com = '
' . $com; } $com =~ s/
/\n/g; # 絵文字 $sub = &emoji_fukugen_edt($sub); $nam = &emoji_fukugen_edt($nam); $com = &emoji_fukugen_edt($com); print < おなまえ Eメール タイトル メッセージ   EOM if ($emform) { print < EOM } else { print < [絵文字入力] EOM } print < 参照先 EOM } #------------------------------------------------- # エラー処理 #------------------------------------------------- sub error { &header; print <

ERROR !

$_[0]


EOM exit; } #------------------------------------------------- # ワード検索 #------------------------------------------------- sub find { local($wd,$flag,$i,$next,$back,$enwd,@wd); &header; print <
  • 検索したいキーワードを入力し検索ボタンを押してください。
  • キーワードはスペースで区切って複数指定することができます。

    EOM # 同じ条件で過去ログを検索 if ($pastkey && $in{'word'}) { print < EOM } print < EOM # 検索実行 if ($in{'word'} ne "") { # 入力内容整理 $in{'word'} =~ s/\x81\x40/ /g; my @wd = split(/\s+/, $in{'word'}); # 検索 print "
    \n"; my $i=0; open(IN,"$logfile") || &error("Open Error: $logfile"); while () { local($no,$no2,$dat,$nam,$eml,$sub,$com, $url,$hos,$pw,$tim,$typ,$res,$chk) = split(/<>/); my $flag=0; foreach my $wd (@wd) { if ($chk == 1) { last; } if (index("$nam $eml $sub $com $url",$wd) >= 0) { $flag=1; if ($in{'cond'} eq 'OR') { last; } } else { if ($in{'cond'} eq 'AND') { $flag=0; last; } } } # 検索にヒット if ($flag) { $i++; if ($i < $page + 1) { next; } if ($i > $page + $in{'view'}) { next; } ### if ($eml) { $nam = "$nam"; } if ($eml) { $nam = &eml_henkan($eml,$nam,$no); } # 絵文字 $sub = &o2p($sub); $com = &o2p($com); print "

    [$no] "; print "$sub "; print "投稿者:$nam 投稿日:$dat

    $com"; print "

    $url" if ($url); print "

    \n"; } } close(IN); print "


    検索結果:$i
    \n"; my $next = $page + $in{'view'}; my $back = $page - $in{'view'}; my $enwd = &url_enc($in{'word'}); if ($back >= 0) { print "[前の$in{'view'}件]\n"; } if ($next < $i) { print "[次の$in{'view'}件]\n"; } } print "\n\n"; exit; } #------------------------------------------------- # URLエンコード #------------------------------------------------- sub url_enc { local($_) = @_; s/(\W)/'%' . unpack('H2', $1)/eg; s/\s/+/g; $_; } #------------------------------------------------- # 使い方表示 #------------------------------------------------- sub howto { &header; print <
    キーワード: 条件: 表\示:
    同じ条件で過去ログを検索

    留意事項

    1. この掲示板はパソ\コンの他に、iモード、SBM及びEZwebに対応しており、SBMの3G機を除いてそれぞれ絵文字が利用可能\です。
    2. 絵文字は、各携帯端末同士で似たものがある場合には相互に自動変換し、それ以外の場合には画像に置き換えて表\示します。
    3. この掲示板はクッキー対応ですので、1度記事を投稿いただくと、お名前、Eメール、URL、暗証キー情報は2回目以降は自動入力されます。(ブラウザがクッキー対応の場合)
    4. 投稿記事には、タグは一切使用できません。
    5. 記事を投稿する上での必須入力項目は「おなまえ」「メッセージ」です。Eメール、URL、題名、暗証キーは任意です。
    6. 記事には、半角カナは一切使用しないで下さい。文字化けの原因となります。
    7. 記事の投稿時に、暗証キーの欄にパスワード(英数字で8文字以内)を入れておくと、その記事は後日その暗証キーによって修正・削除することができます。
    8. 記事の保持件数は最大$max件です。それを超えると古い順に自動削除されます。
    9. 過去の投稿記事から「キーワード」によって検索することができます。トップメニューの「ワード検索」のリンクをクリックすると検索モードとなります。
    10. 管理者が著しく不適当と判断する記事は、予\告なく削除することがあります。

    EOM exit; } #------------------------------------------------- # HTMLヘッダ - JavaScript #------------------------------------------------- sub header_js { if ($headflag) { return; } print "Content-Type: text/html\n\n"; print < $meta $title $body EOM $headflag=1; } #------------------------------------------------- # 絵文字ポップアップ #------------------------------------------------- sub popup { local(@i_emoji) = ( '89f','8a0','8a1','8a2','8a3','8a4','8a5','8a6','8a7','8a8','8a9', '8aa','8ab','8ac','8ad','8ae','8af','8b0','8b1','8b2','8b3','8b4', '8b5','8b6','8b7','8b8','8b9','8ba','8bb','8bc','8bd','8be','8bf', '8c0','8c1','8c2','8c3','8c4','8c5','8c6','8c7','8c8','8c9','8ca', '8cb','8cc','8cd','8ce','8cf','8d0','8d1','8d2','8d3','8d4','8d5', '8d6','8d7','8d8','8d9','8da','8db','8dc','8dd','8de','8df','8e0', '8e1','8e2','8e3','8e4','8e5','8e6','8e7','8e8','8e9','8ea','8eb', '8ec','8ed','8ee','8ef','8f0','8f1','8f2','8f3','8f4','8f5','8f6', '8f7','8f8','8f9','8fa','8fb','8fc','940','941','942','943','944', '945','946','947','948','949','94a','94b','94c','94d','94e','94f', '950','951','952','953','954','955','956','957','958','959','95a', '95b','95c','95d','95e','95f','960','961','962','963','964','965', '966','967','968','969','96a','96b','96c','96d','96e','96f','970', '971','972','973','974','975','976','977','978','979','97a','97b', '97c','97d','97e','980','981','982','983','984','985','986','987', '988','989','98a','98b','98c','98d','98e','98f','990','991','992', '993','994','995','996','997','998','999','99a','99b','99c','99d', '99e','99f','9a0','9a1','9a2','9a3','9a4','9a5','9a6','9a7','9a8', '9a9','9aa','9ab','9ac','9ad','9ae','9af','9b0','9b1','9b2','9b3', '9b4','9b5','9b6','9b7','9b8','9b9','9ba','9bb','9bc','9bd','9be', '9bf','9c0','9c1','9c2','9c3','9c4','9c5','9c6','9c7','9c8','9c9', '9ca','9cb','9cc','9cd','9ce','9cf','9d0','9d1','9d2','9d3','9d4', '9d5','9d6','9d7','9d8','9d9','9da','9db','9dc','9dd','9de','9df', '9e0','9e1','9e2','9e3','9e4','9e5','9e6','9e7','9e8','9e9','9ea', '9eb','9ec','9ed','9ee','9ef','9f0','9f1','9f2','9f3','9f4','9f5', '9f6','9f7','9f8','9f9','9fa','9fb','9fc', ); &header; print < iモード用絵文字

    EOM local($x1,$y1,$x2,$y2) = (4,3,20,18); foreach $i (1 .. 282) { $j = $i - 1; #$i_emoji[$j] =~ s/^(.)(..)/pack('H2H2', "f$1", $2)/eg; print "\n"; $x1 += 16; $x2 += 16; if ($i % 25 == 0) { $x1=4; $x2=20; $y1+=15; $y2+=15; } } print <

    EOM exit; } #--------------# # 移動ボタン # #--------------# sub mvbtn { local($link,$i,$view) = @_; local($start,$end,$x,$y,$bk_bl,$fw_bl); if ($in{'bl'}) { $start = $in{'bl'}*10 + 1; $end = $start + 9; } else { $in{'bl'} = 0; $start = 1; $end = 10; } $x=1; $y=0; while ($i > 0) { # 当ページ if ($page == $y) { print "| $x\n"; # 切替ページ } elsif ($x >= $start && $x <= $end) { print "| $x\n"; # 前ブロック } elsif ($x == $start-1) { $bk_bl = $in{'bl'}-1; print "| \n"; # 次ブロック } elsif ($x == $end+1) { $fw_bl = $in{'bl'}+1; print "| \n"; } $x++; $y += $view; $i -= $view; } print "|\n"; } #---------------------------# # ホスト名、UserAgent表示 # #---------------------------# sub hosUA_out { my ($host,$utn,$UA) = split(/:/,$_[0],3); if ($hostView == 2) { $host = "ホスト:" . &HosUaEnc($host); } if ($UAView == 2) { $UA = &telAgent($UA); } if ($hostView >= 1) { print qq |$host\n|; } if ($UAView >= 1) { if ($UA eq '') { $UA = "未取得"; } print qq |
    $UA\n|; } } #------------------------------------------------- # 新規投稿フォーム #------------------------------------------------- sub shinki { &header_js; print <
    【新規投稿】 EOM &form(); print <
    EOM exit; } #------------------------------------------------- # 記事修正 〜修正画面〜 #------------------------------------------------- sub edit_gamen { my ($no,$reno,$dat,$nam,$eml,$sub,$com,$url,$hos,$pw,$tim,$typ,$res,$chk,$col) = split(/<>/,$_[0]); &header_js; my $form_name = $emform ? 'moji' : '_form'; print <【記事修正】
    記事番号 : $no EOM &form2($nam,$eml,$sub,$com,$url); # 文字色情報 if ($color ne '') { my @col = split(/\s+/, $color); if ($col) { my $i=0; foreach (@col) { if ($_ eq $col) { $i=1; last; } } if (!$i) { push (@col,$col); } } if ($col eq "" || $col >= @col) { $col = 0; } # 文字色が1つの場合は選択肢を表示しない if (@col == 1) { print qq |\n|; } else { print qq |文字色\n|; foreach (0 .. $#col) { if ($col eq $col[$_] || $col eq $_) { # if ($col eq $col[$_]) { print qq ||; print qq |\n|; } else { print qq ||; print qq |\n|; } } print qq |\n|; } } print <

    EOM } #------------------------------------------------- # 記事修正 〜修正結果の表示〜 #------------------------------------------------- sub edit_kekka { my ($col) = @_; &header_js; print qq |- 以下のとおり修正が完了しました -\n|; # 絵文字変換 my $sub = &o2p($in{'sub'}); my $name = &o2p($in{'name'}); my $comment = &o2p($in{'comment'}); if ($autolink) { &auto_link($comment); } if ($in{'url'} ne '') { $in{'url'} = qq |$in{'url'}|; } # 修正結果を表示 print <

    記事番号$in{'no'}
    おなまえ$name
    Eメール$in{'email'}
    タイトル$sub
    参照先$in{'url'}
    メッセージ$comment

    EOM } #------------------------------------------------- # 記事内のリンク・フォームからの修正・削除の認証 #------------------------------------------------- sub ninsho_edt_del { my ($tmp); if (!$in{'no'}) { &error("記事番号が指定されていません"); } elsif ($in{'no'} =~ /\D/) { &error("記事番号の指定が不正です"); } &header; print qq |
    \n|; if ($mode eq "ninsho_del") { print qq |【No.$in{'no'}を削除します】\n|; $tmp = 'usrdel'; } elsif ($mode eq "ninsho_edt") { print qq |【No.$in{'no'}を修正します】\n|; $tmp = 'usredit'; } else { &error("modeが変です"); } print <

    暗証キーを入力して下さい

    EOM exit; } 1; __END__