去北京冬天去哪儿玩儿few分

#!/usr/local/bin/perl
## ----------------------------------------------------------------------------+
## YY-BOARD v2.1
## by 偍偄偳傫 (99/01/30)
## E-MAIL: oidon@iod.co.jp
## WWW: http://www.iod.co.jp/~oidon/
$ver = 'YYBBS v2.1';
# 僶乕僕儑儞忣曬乮廋惓晄梫乯
## ---[拲堄帠崁傎偐]-----------------------------------------------------------+
## 1.嶍彍僉乕偺埫崋壔偵偼 Crypt娭悢傪巊梡偟偰偄傑偡丅僾儘僶僀僟偑Crypt娭悢偵懳墳
偟偰偄側偄応崌偼丄僐儊儞僩嶍彍婡擻偼巊梡偱偒傑偣傫丅
## 2.搳峞偑偁傞偲儊乕儖捠抦偟偨偄応崌($mailing=1;)丄僾儘僶僀僟偑sendmail傪嫋壜
## 丂偟偰偄傞応崌偺傒偱偡丅乮椺丗BIGLOBE,SO-NET偼壜擻丄InfoWeb,RIMNET偼晄壜乯
## 3.偙偺僗僋儕僾僩偼僼儕乕僜僼僩偱偡丅偙偺僗僋儕僾僩傪巊梡偟偨偄偐側傞懝奞偵
懳偟偰嶌幰偼堦愗偺愑擟傪晧偄傑偣傫丅
## 4.愝抲偵娭偡傞幙栤偼僒億乕僩宖帵斅偵偍婅偄偄偨偟傑偡丅儊乕儖偵傛傞幙栤偵偼
偍摎偊偱偒傑偣傫丅
## ----------------------------------------------------------------------------+
require './jcode.pl';
# jcode.pl偑摨堦僨傿儗僋僩儕偵偁傞応崌
### --- 婎杮愝掕 --- ###
$title = "宖帵斅";
# 僞僀僩儖柤
$t_color = "9900cc";
# 僞僀僩儖偺怓
# 僞僀僩儖偺戝偒偝(font size)
= "俵俽 俹僑僔僢僋";
# 僞僀僩儖暥帤偺庬椶(font face)
$backgif = "";
# 暻巻傪巜掕
$bgcolor = "#faeaff";
# 攚宨怓傪巜掕
= "#000000";
# 暥帤怓傪巜掕
= "#0000FF";
# 儕儞僋怓傪巜掕乮枹儕儞僋乯
= "#800080";
# 儕儞僋怓傪巜掕乮婛儕儞僋乯
= "#FF0000";
# 儕儞僋怓傪巜掕乮儕儞僋拞乯
$homepage = 'http://contest.thinkquest.gr.jp/tqj/frame/mokuji.html';
# 栠傝愭偺URL(index.html側偳)
$homepage2 = 'http://contest.thinkquest.gr.jp/tqj/noframe/mokuji.html';
# 栠傝愭偺URL(index.html側偳)
$max = 100;
# 恊婰帠嵟戝悢 (偁傑傝懡偔偡傞偲婋尟)
$pass = 'jom578';
# 娗棟幰梡儅僗僞僷僗儚乕僪(塸悢帤)
### --- 墳梡愝掕乮偙偙偐傜偼応崌偵墳偠偰偺愝掕撪梕乯--- ###
$icon_mode = 0;
# 傾僀僐儞儌乕僪 (0=no 1=yes)
$res_sort = 0;
# 曉怣偑偮偔偲恊婰帠傪僩僢僾傊堏摦 (0=no 1=yes)
$title_gif = '.';
# 僞僀僩儖偵GIF夋憸傪巊梡偡傞帪 (http://偐傜婰弎)
$tg_w = '150';
# 忋婰僞僀僩儖GIF夋憸偺暆(僺僋僙儖)
$tg_h = '50';
崅偝(僺僋僙儖)
$lockkey = 0;
# 僼傽僀儖儘僢僋宍幃(0=no 1=symlink娭悢 2=open娭悢)
$lockfile = './yybbs.lock';
# 儘僢僋僼傽僀儖柤
# 儈僯僇僂儞僞偺愝抲 (0=no 1=yes)
$mini_fig = 5;
# 儈僯僇僂儞僞偺寘悢
$cnt_color = "#dd0000";
# 僥僉僗僩偺偲偒丗儈僯僇僂儞僞偺怓
$gif_path = ".";
# 俧俬俥偺偲偒丂丗夋憸傑偱偺僨傿儗僋僩儕
$mini_w = 8;
丂丗夋憸偺墶僒僀僘
$mini_h = 12;
丂丗夋憸偺廲僒僀僘
$countfile = './count.dat';
# 僇僂儞僞僼傽僀儖
$tagkey = 0;
# 僞僌偺嫋壜(0=no 1=yes)
= './yybbs.cgi';
# 僗僋儕僾僩僼傽僀儖
$logfile = './yybbs.log';
# 儘僌僼傽僀儖
$sbj_color = "#9933ff";
# 婰帠偺[僞僀僩儖]晹偺怓
$nam_color = "#9933ff";
# 婰帠偺[柤慜]晹偺怓
$tbl_color = "#FFFFFF";
# 婰帠昞帵晹偺壓抧偺怓
$obi_color = "#660099";
# 巊偄曽愢柧/儚乕僪専嶕夋柺偺僞僀僩儖僶僢僋偺怓
$home_wid = 25;
# home.gif偺夋憸墶僒僀僘
$home_hei = 22;
$method = 'POST';
# method偺宍幃 (POST/GET)
$pagelog = 10;
# 侾儁乕僕摉偨傝偺婰帠昞帵悢 (恊婰帠)
$mailing = 0;
# 搳峞偑偁傞偲儊乕儖捠抦偡傞(0=no 1=yes)
$mailto = 'yumiko@sa2.son-net.or.jp';
# 儊乕儖傾僪儗僗(儊乕儖捠抦偡傞帪)
$sendmail = '/usr/lib/sendmail'; # sendmail僷僗乮儊乕儖捠抦偡傞帪乯
$base_url = ".";
# 懠僒僀僩偐傜搳峞攔彍帪偵巜掕(http://偐傜彂偔)
# 伀暥帤怓偺愝掕丅
@COLORS = ('000000','DF0000','008040','0000FF','C100C1','FF80C0','FF8040','000080');
$wrap = 'soft';
# 搳峞僼僅乕儉夵峴宍幃 (soft=庤摦 hard=嫮惂)
$autolink = 1;
# 帺摦儕儞僋 (0=no 1=yes)
$pastkey = 0;
# 夁嫀儘僌惗惉 (0=no 1=yes)
= "./pastno.dat";
# 夁嫀儘僌梡NO僼傽僀儖
$past_dir = ".";
# 夁嫀儘僌偺僨傿儗僋僩儕
$log_line = '150';
# 夁嫀儘僌侾僼傽僀儖偺峴悢
$yybbs2 = "./yybbs2.cgi";
# 夁嫀儘僌娗棟僼傽僀儖
## 愝掕偙偙傑偱
### --- 儊僀儞張棟 --- ###
if ($mode eq "howto") { & }
if ($mode eq "find") { & }
if ($mode eq "usr_del") { &usr_ }
if ($mode eq "msg_del") { &msg_ }
if ($mode eq "msg") { & }
if ($mode eq "res_msg") { &res_ }
if ($mode eq "admin") { & }
if ($mode eq "admin_del") { &admin_ }
if ($mode eq "image") { & }
### --- 婰帠昞帵晹 --- ###
sub html_log {
# 僋僢僉乕傪庢摼
# 僼僅乕儉挿傪挷惍
# 儘僌傪撉傒崬傒
open(IN,"$logfile") || &error("Can't open $logfile");
@lines = ;
close(IN);
# 婰帠斣崋傪僇僢僩
shift(@lines);
# 恊婰帠偺傒偺攝楍僨乕僞傪嶌惉
@new = ();
foreach $line (@lines) {
local($num,$k,$dt,$na,$em,$sub,$com,$url,$host,$pw,$color,$icon)
= split(//,$line);
# 恊婰帠傪廤栺
if ($k eq "") { push(@new,$line); }
# 儗僗婰帠偼儗僗弴偵偮偗傞偨傔攝楍傪媡弴偵偡傞
@lines = reverse(@lines);
# 僿僢僟傪弌椡
# 僇僂儞僞張棟
if ($counter) { & }
# 僞僀僩儖晹
if ($title_gif eq '.' || $title_gif eq '') {
print "$title\n";
print "\n";
print "\n";
print "[]\n";
print "[]\n";
print "[]\n";
print "[]\n";
if ($pastkey) {
print "[]\n";
print <<"EOM";
if ($icon_mode) {
print "僀儊乕僕\n";
foreach(0 .. $#icon1) {
if ($c_icon eq "$icon1[$_]") {
print "$icon2[$_]\n";
print "$icon2[$_]\n";
print " (偁側偨偺僀儊乕僕傪慖戰偟偰壓偝偄)\n";
print "[]\n";
print "嶍彍僉乕\n";
print "\n";
print "(帺暘偺婰帠傪嶍彍帪偵巊梡丅塸悢帤偱8暥帤埲撪)\n";
print "暥帤怓\n";
# 僋僢僉乕偺怓忣曬偑側偄応崌
if ($c_color eq "") {
print "\n";
print "仭\n";
foreach (1 .. $#COLORS) {
print "\n";
print "仭\n";
# 僋僢僉乕偺怓忣曬偑偁傞応崌
foreach (0 .. $#COLORS) {
if ($c_color eq "$COLORS[$_]") {
print "\n";
print "仭\n";
print "\n";
print "仭\n";
print "\n";
if ($FORM{'page'} eq '') { $page = 0; }
else { $page = $FORM{'page'}; }
# 婰帠悢傪庢摼
$end_data = @new - 1;
$page_end = $page + ($pagelog - 1);
if ($page_end >= $end_data) { $page_end = $end_ }
foreach ($page .. $page_end) {
($number,$k,$date,$name,$email,$subj,$comment,$url,$host,$pwd,
$color,$icon) = split(//,$new[$_]);
if ($email) { $name = ""; }
if ($subj eq "") { $subj = "(柍戣)"; }
if ($url) { $url = ""; }
print <<"EOM";
[$number] $subj
丂搳峞幰丗$name
丂搳峞擔丗$date $url
$icon =~ s/\n//g;
if ($icon ne "") { print "\n"; }
else { print "\n"; }
# 帺摦儕儞僋
if ($autolink) { &auto_link($comment); }
print "$comment\n";
## 儗僗儊僢僙乕僕傪昞帵
$flag = 0;
foreach $line (@lines) {
($rnum,$rk,$rd,$rname,$rem,$rsub,$rcom,$rurl,$rho,$rp,$rc,$ri)
= split(//,$line);
if ($rem) { $rname = ""; }
if ($number eq "$rk"){
if ($flag == 0) { print "\n"; $flag = 1; }
print "\n";
$ri =~ s/\n//g;
if ($ri ne "") {
print "\n";
print "\n";
if ($rsub eq "") { $rsub = "(柍戣)"; }
print "$rsub \n";
print "搳峞幰丗$rname - \n";
print "$rd\n";
if ($rurl ne "") {
print "\n";
# 帺摦儕儞僋
if ($autolink) { &auto_link($rcom); }
print "\n";
print "$rcom\n";
print "\n";
print "\n";
# 夵暸張棟
$next_line = $page_end + 1;
$back_line = $page - $
# 慜暸張棟
if ($back_line >= 0) {
print "\n";
print "\n";
print "\n";
print "\n";
# 師暸張棟
if ($page_end ne "$end_data") {
print "\n";
print "\n";
print "\n";
print "\n";
print "\n";
### --- 儘僌彂偒崬傒張棟 --- ###
sub regist {
# 懠僒僀僩偐傜偺傾僋僙僗傪攔彍
if ($base_url ne ".") {
$ref_url = $ENV{'HTTP_REFERER'};
$ref_url =~ s/\?(.|\n)*//
$ref_url =~ s/\%7E/\~/
if ($ref_url !~ $base_url) { &error("晄惓側傾僋僙僗偱偡丅"); }
# 柤慜偲僐儊儞僩偼昁恵
if ($FORM{'name'} eq "") { &error("柤慜偑擖椡偝傟偰偄傑偣傫丅"); }
if ($FORM{'comment'} eq "") { &error("僐儊儞僩偑擖椡偝傟偰偄傑偣傫丅"); }
# 儂僗僩柤傪庢摼
= $ENV{'REMOTE_HOST'};
= $ENV{'REMOTE_ADDR'};
if ($host eq "" || $host eq "$addr") {
($p1,$p2,$p3,$p4) = split(/\./,$addr);
$temp = pack("C4",$p1,$p2,$p3,$p4);
$host = gethostbyaddr("$temp", 2);
if ($host eq "") { $host = $ }
# 僋僢僉乕傪敪峴
# 僼傽僀儖儘僢僋
if ($lockkey == 1) { &lock1; }
elsif ($lockkey == 2) { &lock2; }
# 儘僌傪奐偔
open(IN,"$logfile") || &error("Can't open $logfile");
@lines = ;
close(IN);
# 婰帠NO張棟
$oya = $lines[0];
$oya =~ s/\n//;
shift(@lines);
# 擇廳搳峞偺嬛巭
local($flag) = 0;
foreach $line (@lines) {
($knum,$kk,$kd,$kname,$kem,$ksub,$kcom) = split(//,$line);
if ($name eq "$kname" && $comment eq "$kcom") {
if ($flag) { &error("擇廳搳峞偼嬛巭偱偡"); }
# 恊婰帠偺応崌丄婰帠No傪僇僂儞僩傾僢僾
if ($FORM{'resno'} eq "") { $oya++; $number=$ }
else { $number = $ }
# 嶍彍僉乕傪埫崋壔
if ($FORM{'pwd'} ne "") { &passwd_encode($FORM{'pwd'}); }
# 儘僌傪僼僅乕儅僢僩
$new_msg = "$number$FORM{'resno'}$date$name$email$subj$comment$url$host$ango$color$FORM{'icon'}\n";
## 帺摦僜乕僩帪偼丄儗僗婰帠搳峞帪偼恊婰帠偼僩僢僾傊堏摦
if ($res_sort && $FORM{'resno'} ne "") {
@res_data = ();
@new = ();
foreach $line (@lines) {
$flag = 0;
($num,$k,$d,$na,$em,$sub,$com,$u,$ho,$p,$c,$ico) = split(//,$line);
# 恊婰帠傪敳偒弌偡
if ($k eq "" && $FORM{'resno'} eq "$num") {
$new_line = "$line";
$flag = 1;
# 娭楢偺儗僗婰帠傪敳偒弌偡
elsif ($k eq "$FORM{'resno'}") {
push(@res_data,$line);
$flag = 1;
if ($flag == 0) { push(@new,$line); }
# 娭楢儗僗婰帠傪僩僢僾傊
unshift(@new,@res_data);
# 怴婯儊僢僙乕僕傪僩僢僾傊
unshift(@new,$new_msg);
# 恊婰帠傪僩僢僾傊
unshift(@new,$new_line);
## 恊婰帠偺応崌丄嵟戝婰帠悢傪挻偊傞婰帠傪僇僢僩
} elsif ($FORM{'resno'} eq "") {
$stop = 0;
foreach $line (@lines) {
($num,$k,$d,$na,$em,$sub,$com,$u,$ho,$p,$c,$ico)=split(//,$line);
if ($k eq "") { $i++; }
if ($i > $max-1) {
$stop = 1;
if ($pastkey == 0) { }
if ($k eq "") { $kflag=1; push(@past_data,$line); }
else { push(@past_res,$line); }
if ($stop == 0) { push(@new,$line); }
## 夁嫀婰帠惗惉
if ($kflag) {
@past_res = reverse(@past_res);
push(@past_data,@past_res);
unshift(@new,$new_msg);
## 儗僗婰帠偼婰帠悢偺挷惍偼偟側偄
@res_data = ();
@new = ();
foreach $line (@lines) {
$flag = 0;
($num,$k,$d,$na,$em,$sub,$com,$u,$ho,$p,$c,$ico) = split(//,$line);
# 恊婰帠傪敳偒弌偡
if ($k eq "" && $FORM{'resno'} eq "$num") {
$new_line = "$line";
$flag = 2;
if ($flag == 0) { push(@new,$line); }
elsif ($flag == 2) {
push(@new,$new_line);
push(@new,$new_msg);
# 恊婰帠NO傪晅壛
unshift (@new,"$oya\n");
# 儘僌傪峏怴
open(OUT,">$logfile") || &error("Can't write $logfile");
print OUT @
close(OUT);
# 儘僢僋夝彍
if (-e $lockfile) { unlink($lockfile); }
# 儊乕儖張棟
if ($mailing == 1 && $FORM{'email'} ne $mailto) { & }
### --- 曉怣僼僅乕儉 --- ###
sub res_msg {
# 儘僌傪撉傒崬傒
open(DB,"$logfile") || &error("Can't open $logfile");
@lines = ;
close(DB);
# 恊婰帠NO傪僇僢僩
@lines = splice(@lines,1);
# 僼僅乕儉挿傪掕媊
# 僋僢僉乕傪庢摼
print "埲壓偼丄婰帠NO $FORM{'resno'} 偵娭偡傞曉怣僼僅乕儉偱偡丅\n";
print "\n";
print "\n";
foreach $line (@lines) {
local($num,$k,$date,$name,$email,$sub,$com) = split(//,$line);
# 恊婰帠傪弌椡
if ($k eq "" && $FORM{'resno'} eq "$num") {
$resub = $
print "亂恊婰帠亃\n";
print "$sub\n";
print "搳峞幰丗$name\n";
print "搳峞擔丗$date\n";
print "$com\n";
# 儗僗婰帠傪 @res 偵奿擺
} elsif ($k ne "" && $FORM{'resno'} eq "$k") {
push(@res,$line);
# 儗僗婰帠傪昞帵
if (@res) {
# 婰帠傪媡弴偵
@res = reverse(@res);
$flag = 0;
foreach $line (@res) {
local($num,$k,$date,$name,$email,$sub,$com) = split(//,$line);
if ($flag == 0) {
print "亂儗僗婰帠亃\n";
print "$sub\n";
print "搳峞幰丗$name - \n";
print "$date\n";
print "$com\n";
# 僞僀僩儖柤
if ($resub eq "") { $resub = "柍戣"; }
if ($resub !=~ /^Re\:/) { $resub = "Re\: $resub"; }
print <<"EOM";
儊僢僙乕僕
if ($icon_mode) {
print "僀儊乕僕\n";
foreach(0 .. $#icon1) {
if ($c_icon eq "$icon1[$_]") {
print "$icon2[$_]\n";
print "$icon2[$_]\n";
print " (偁側偨偺僀儊乕僕傪慖戰偟偰壓偝偄)\n";
print "[]\n";
print "嶍彍僉乕";
print "\n";
print "(帺暘偺婰帠傪嶍彍帪偵巊梡丅塸悢帤偱8暥帤埲撪)\n";
print "暥帤怓\n";
# 僋僢僉乕偺怓忣曬偑側偄応崌
if ($c_color eq "") {
print "仭\n";
foreach (1 .. $#COLORS) {
print "仭\n";
# 僋僢僉乕偺怓忣曬偑偁傞応崌
foreach (0 .. $#COLORS) {
if ($c_color eq "$COLORS[$_]") {
print "仭\n";
print "仭\n";
print "\n\n";
### --- 僼僅乕儉偐傜偺僨乕僞張棟 --- ###
sub form_decode {
if ($ENV{'REQUEST_METHOD'} eq "POST") {
if ($ENV{'CONTENT_LENGTH'} > 51200) { &error("搳峞検偑戝偒偡偓傑偡丅"); }
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} else { $buffer = $ENV{'QUERY_STRING'}; }
@pairs = split(/&/,$buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/
# 暥帤僐乕僪曄姺
&jcode'convert(*value,'sjis');
# 僞僌張棟
if ($tagkey == 0) {
$value =~ s//\&gt\;/g;
$value =~ s/\"/\&quot\;/g;
$value =~ s///g;
$value =~ s//&lt\;&gt\;/g;
# 堦妵嶍彍梡
if ($name eq 'del') { push(@delete,$value); }
$FORM{$name} = $
$name = $FORM{'name'};
$comment = $FORM{'comment'};
$comment =~ s/\r\n//g;
$comment =~ s/\r|\n//g;
$email = $FORM{'email'};
= $FORM{'url'};
=~ s/^http\:\/\///;
$mode = $FORM{'mode'};
$subj = $FORM{'subj'};
= $FORM{'pwd'};
$icon = $FORM{'icon'};
$color = $FORM{'color'};
# 擔帪偺庢摼
$ENV{'TZ'} = "JST-9";
($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime(time);
if ($year < 10) { $year = "0$year"; }
< 10) { $mon
= "0$mon";
if ($mday < 10) { $mday = "0$mday"; }
if ($hour < 10) { $hour = "0$hour"; }
< 10) { $min
= "0$min";
< 10) { $sec
= "0$sec";
$week = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat') [$wday];
# 擔帪偺僼僅乕儅僢僩
$date = "$year\/$mon\/$mday\($week\) $hour\:$min\:$sec";
### --- 宖帵斅偺巊偄曽儊僢僙乕僕 --- ###
sub howto {
if ($tagkey == 0) { $tag_msg = "搳峞撪梕偵偼丄僞僌偼堦愗巊梡偱偒傑偣傫丅\n"; }
else { $tag_msg = "僐儊儞僩棑偵偼丄僞僌巊梡傪偡傞偙偲偑偱偒傑偡丅\n"; }
print <<"HTML";
宖帵斅偺棙梡忋偺拲堄
偙偺宖帵斅偼僋僢僉乕懳墳偱偡丅侾搙婰帠傪搳峞偄偨偩偔偲丄偍側傑偊丄俤儊乕儖丄倀俼俴丄嶍彍僉乕偺忣曬偼俀夞栚埲崀偼帺摦擖椡偝傟傑偡丅乮偨偩偟棙梡幰偺僽儔僂僓偑僋僢僉乕懳墳偺応崌乯
婰帠傪搳峞偡傞忋偱偺昁恵擖椡崁栚偼乽偍側傑偊乿偲乽儊僢僙乕僕乿偱偡丅俤儊乕儖丄倀俼俴丄戣柤丄嶍彍僉乕偼擟堄偱偡丅
婰帠偵偼丄敿妏僇僫偼堦愗巊梡偟側偄偱壓偝偄丅暥帤壔偗偺尨場偲側傝傑偡丅
婰帠偺搳峞帪偵乽嶍彍僉乕乿偵僷僗儚乕僪乮塸悢帤偱8暥帤埲撪乯傪擖傟偰偍偔偲丄偦偺婰帠偼師夞嶍彍僉乕偵傛偭偰嶍彍偡傞偙偲偑偱偒傑偡丅
婰帠偺曐帩審悢偼嵟戝 $max審偱偡丅偦傟傪挻偊傞偲屆偄弴偵帺摦嶍彍偝傟傑偡丅
婛懚偺婰帠偵乽曉怣乿傪偡傞偙偲偑偱偒傑偡丅奺婰帠偺忋晹偵偁傞乽曉怣乿儃僞儞傪墴偡偲曉怣梡僼僅乕儉偑尰傟傑偡丅
夁嫀偺搳峞婰帠偐傜乽僉乕儚乕僪乿偵傛偭偰娙堈専嶕偑偱偒傑偡丅僩僢僾儊僯儏乕偺偺儕儞僋傪僋儕僢僋偡傞偲専嶕儌乕僪偲側傝傑偡丅
娗棟幰偑挊偟偔晄棙塿偲敾抐偡傞婰帠傗懠恖傪旑鎺拞彎偡傞婰帠偼\梊\崘\側偔嶍彍偡傞偙偲偑偁傝傑偡丅
### --- 儚乕僪専嶕僒僽儖乕僠儞 --- ###
sub find {
print <<"HTML";
儚乕僪専嶕
専嶕偟偨偄僉乕儚乕僪傪擖椡偟丄専嶕椞堟傪慖戰偟偰乽専嶕儃僞儞乿
傪墴偟偰偔偩偝偄丅
僉乕儚乕僪偼乽敿妏僗儁乕僗乿偱嬫愗偭偰暋悢巜掕偡傞偙偲偑偱偒傑偡丅
僉乕儚乕僪
# 儚乕僪専嶕偺幚峴偲寢壥昞帵
if ($FORM{'word'} ne ""){
# 擖椡撪梕傪惍棟
$cond = $FORM{'cond'};
$word = $FORM{'word'};
$word =~ s/丂/ /g;
$word =~ s/\t/ /g;
@pairs = split(/ /,$word);
# 僼傽僀儖傪撉傒崬傒
open(DB,"$logfile") || &error("Can't open $logfile");
@lines = ;
close(DB);
# 専嶕張棟
foreach (1 .. $#lines) {
$flag = 0;
foreach $pair (@pairs){
if (index($lines[$_],$pair) >= 0) {
$flag = 1;
if ($cond eq 'or') { }
if ($cond eq 'and') { $flag = 0; }
if ($flag == 1) { push(@new,$lines[$_]); }
# 専嶕廔椆
$count = @
print "専嶕寢壥丗$count審\n";
print "\n";
foreach $line (@new) {
($num,$k,$date,$name,$email,$subj,$com,$url) = split(//,$line);
if ($subj eq "") { $subj = "no title"; }
if ($email) { $name = ""; }
if ($url) { $url = ""; }
# 寢壥傪昞帵
print "[$num] $subj\n";
print "搳峞幰丗$name 搳峞擔丗$date\n";
print "$com$url\n";
print "\n";
### --- 僽儔僂僓傪敾抐偟僼僅乕儉暆傪挷惍 --- ###
sub get_agent {
# 僽儔僂僓柤傪庢摼
$agent = $ENV{'HTTP_USER_AGENT'};
if ($agent =~ /MSIE 3/i) {
$subj_wid = 40;
$nam_wid2 = 20;
} elsif ($agent =~ /MSIE 4/i) {
$subj_wid = 40;
$nam_wid2 = 20;
$subj_wid = 25;
$nam_wid2 = 10;
### --- 僋僢僉乕偺敪峴 --- ###
sub set_cookie {
($secg,$ming,$hourg,$mdayg,$mong,$yearg,$wdayg,$ydayg,$isdstg)
= gmtime(time + 30*24*60*60);
if ($yearg < 10) { $yearg = "0$yearg"; }
< 10) { $secg
= "0$secg";
< 10) { $ming
= "0$ming";
if ($hourg < 10) { $hourg = "0$hourg"; }
if ($mdayg < 10) { $mdayg = "0$mdayg"; }
$month = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct',
'Nov','Dec')[$mong];
$youbi = ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday',
'Saturday')[$wdayg];
$date_gmt = "$youbi, $mdayg\-$month\-$yearg $hourg:$ming:$secg GMT";
$cook="name\:$name\,email\:$email\,url\:$url\,pwd\:$pwd\,icon\:$icon\,color\:$color";
print "Set-Cookie: YYBBS=$ expires=$date_gmt\n";
### --- 僋僢僉乕傪庢摼 --- ###
sub get_cookie {
@pairs = split(/;/,$ENV{'HTTP_COOKIE'});
foreach $pair (@pairs) {
local($name, $value) = split(/=/, $pair);
$name =~ s/ //g;
$DUMMY{$name} = $
@pairs = split(/,/,$DUMMY{'YYBBS'});
foreach $pair (@pairs) {
local($name, $value) = split(/:/, $pair);
$COOKIE{$name} = $
= $COOKIE{'name'};
$c_email = $COOKIE{'email'};
= $COOKIE{'url'};
= $COOKIE{'pwd'};
= $COOKIE{'icon'};
$c_color = $COOKIE{'color'};
if ($FORM{'name'})
= $FORM{'name'}; }
if ($FORM{'email'}) { $c_email = $FORM{'email'}; }
if ($FORM{'url'})
if ($FORM{'pwd'})
= $FORM{'pwd'}; }
if ($FORM{'icon'})
= $FORM{'icon'}; }
if ($FORM{'color'}) { $c_color = $FORM{'color'}; }
### --- 僄儔乕張棟 --- ###
sub error {
if (-e $lockfile) { unlink($lockfile); }
if ($_[1] ne '0') { & }
print "僔僗僥儉僄儔乕敪惗両\n";
print "$_[0]\n";
print "\n";
### --- 嶍彍夋柺 --- ###
sub msg_del {
if ($FORM{'action'} eq 'admin' && $FORM{'pass'} ne "$pass") {
&error("僷僗儚乕僪偑堘偄傑偡丅");
open(DB,$logfile) || &error("Can't open $logfile");
@lines = ;
close(DB);
# 恊婰帠偺傒偺攝楍僨乕僞傪嶌惉
@NEW = ();
foreach (1 .. $#lines) {
($number,$k,$date,$name,$email,$subj,$comment,$url,$host,$pwd)
= split(//,$lines[$_]);
$flag = 0;
# 儗僗婰帠傪奜偡
if ($k > 0) { $flag = 1; }
if ($flag == 0) { push(@NEW,$lines[$_]); }
@lines = reverse(@lines);
print "[]\n";
print "\n";
print "僐儊儞僩嶍彍夋柺\n";
print "\n";
print "\n";
print "\n";
if ($FORM{'action'} eq '') {
print "仭搳峞帪偵婰擖偟偨乽嶍彍僉乕乿偵傛傝丄婰帠傪嶍彍偟傑偡丅\n";
print "仭嶍彍偟偨偄婰帠偺僠僃僢僋儃僢僋僗偵僠僃僢僋傪擖傟丄壓婰僼僅乕儉偵乽嶍彍僉乕乿傪擖椡偟偰偔偩偝偄丅\n";
print "仭恊婰帠傪嶍彍偡傞応崌丄偦偺儗僗儊僢僙乕僕傕摨帪偵徚柵偟偰偟傑偆偙偲偵側傝傑偡偺偱丄偛拲堄偔偩偝偄丅\n";
print "\n";
print "\n";
if ($FORM{'action'} eq '') {
print "\n";
print "嶍彍僉乕 \n";
print "\n";
print "\n";
print "\n";
print "\n";
print "\n";
print "嶍彍婰帠No戣柤搳峞幰搳峞擔僐儊儞僩\n";
if ($FORM{'action'} eq 'admin') { print "儂僗僩柤\n"; }
print "\n";
if ($FORM{'page'} eq '') { $page = 0; }
else { $page = $FORM{'page'}; }
# 婰帠悢傪庢摼
$end_data = @NEW - 1;
$page_end = $page + ($pagelog - 1);
if ($page_end >= $end_data) { $page_end = $end_ }
foreach ($page .. $page_end) {
($num,$k,$date,$name,$email,$sub,$com,$url,$host,$pw,$color)
= split(//,$NEW[$_]);
if ($email ne "") { $name=""; }
if ($sub eq "") { $sub = "(柍戣)"; }
$com =~ s// /g;
if ($tagkey) { $com =~ s//&/g; }
if (length($com) > 60) { $com = substr($com,0,58); $com = $com . '..'; }
if ($FORM{'action'} eq 'admin') {
print "\n";
print "\n";
print "$num$sub$name\n";
print "$date$com\n";
if ($FORM{'action'} eq 'admin') { print "$host\n"; }
print "\n";
## 儗僗儊僢僙乕僕傪昞帵
foreach (1 .. $#lines) {
($rnum,$rk,$rd,$rname,$rem,$rsub,$rcom,$rurl,$rho,$rp,$rc)
=split(//,$lines[$_]);
$rcom =~ s// /g;
if ($tagkey) { $rcom =~ s//\&gt\;/g; }
if (length($rcom) > 60) { $rcom=substr($rcom,0,58); $rcom=$rcom . '..'; }
if ($num eq "$rk") {
if ($FORM{'action'} eq 'admin') {
print "\n";
print "\n";
print "$num傊偺儗僗\n";
print "$rname$rd$rcom\n";
if ($FORM{'action'} eq 'admin') { print "$rho\n"; }
print "\n";
print "\n";
print "\n";
# 夵暸張棟
$next_line = $page_end + 1;
$back_line = $page - $
# 慜暸張棟
if ($back_line >= 0) {
print "\n";
print "\n";
print "\n";
print "\n";
if ($FORM{'action'} eq 'admin') {
print "\n";
print "\n";
print "\n";
# 師暸張棟
if ($page_end ne $end_data) {
print "\n";
print "\n";
print "\n";
print "\n";
if ($FORM{'action'} eq 'admin') {
print "\n";
print "\n";
print "\n";
print "\n";
### --- 婰帠嶍彍張棟 --- ###
sub usr_del {
if ($FORM{'del_key'} eq "") { &error("嶍彍僉乕偑擖椡儌儗偱偡丅"); }
if ($FORM{'del'} eq "") { &error("儔僕僆儃僞儞偺慖戰偑偁傝傑偣傫丅"); }
# 儘僢僋奐巒
if ($lockkey == 1) { &lock1; }
elsif ($lockkey == 2) { &lock2; }
# 儘僌傪撉傒崬傓
open(DB,"$logfile") || &error("Can't open $logfile");
@lines = ;
close(DB);
# 恊婰帠NO
$oya = $lines[0];
if ($oya =~ //) { &error("儘僌偑惓偟偔偁傝傑偣傫丅"); }
shift(@lines);
@lines = reverse(@lines);
## 嶍彍僉乕偵傛傞婰帠嶍彍 ##
foreach $line (@lines) {
$dflag = 0;
($num,$k,$dt,$name,$email,$sub,$com,$url,$host,$pw) = split(//,$line);
if ($FORM{'del'} eq "$dt") {
$dflag = 1;
$encode_pwd = $
$del_num = $
if ($k eq '') { $oyaflag=1; }
} elsif ($oyaflag && $del_num eq "$k") {
$dflag = 1;
if ($dflag == 0) { push(@new,$line); }
if ($del_num eq '') { &error("$FORM{'del'}嶍彍懳徾婰帠偑尒偮偐傝傑偣傫丅"); }
if ($encode_pwd eq '') { &error("嶍彍僉乕偑愝掕偝傟偰偄傑偣傫丅"); }
$plain_text = $FORM{'del_key'};
&passwd_decode($encode_pwd);
if ($check eq 'no') { &error("僷僗儚乕僪偑堘偄傑偡丅"); }
# 恊婰帠NO傪晅壛
@new = reverse(@new);
unshift(@new,$oya);
## 儘僌傪峏怴 ##
open(DB,">$logfile") || &error("Can't write $logfile");
print DB @
close(DB);
# 儘僢僋夝彍
if (-e $lockfile) { unlink($lockfile); }
# 嶍彍夋柺偵傕偳傞
## 娗棟幰堦妵婰帠嶍彍
sub admin_del {
if ($FORM{'pass'} ne "$pass") { &error("僷僗儚乕僪偑堘偄傑偡丅"); }
if ($FORM{'del'} eq "") { &error("僠僃僢僋儃僢僋僗偺慖戰偑偁傝傑偣傫丅"); }
# 儘僢僋奐巒
if ($lockkey == 1) { &lock1; }
elsif ($lockkey == 2) { &lock2; }
# 儘僌傪撉傒崬傓
open(DB,"$logfile") || &error("Can't open $logfile");
@lines = ;
close(DB);
# 恊婰帠NO
$oya = $lines[0];
if ($oya =~ //) {
&error("儘僌偑惓偟偔偁傝傑偣傫丅\(v2.5埲慜偺儘僌偺応崌偼曄姺偺昁梫偑偁傝傑偡\)");
shift(@lines);
@lines = reverse(@lines);
## 嶍彍張棟
foreach $line (@lines) {
($num,$k,$dt,$name,$email,$sub,$com,$url,$host,$pw) = split(//,$line);
foreach $del (@delete) {
if ($del eq "$dt") {
$dflag = 1;
$del_num = $
if ($k eq '') { $oyaflag=1; }
} elsif ($oyaflag && $del_num eq "$k") {
$dflag = 1;
if ($dflag == 0) { push(@new,$line); }
# 恊婰帠NO傪晅壛
@new = reverse(@new);
unshift(@new,$oya);
## 儘僌傪峏怴 ##
open(DB,">$logfile") || &error("Can't write $logfile");
print DB @
close(DB);
# 儘僢僋夝彍
if (-e $lockfile) { unlink($lockfile); }
# 嶍彍夋柺偵傕偳傞
## 娗棟幰擖幒夋柺
sub admin {
print "僷僗儚乕僪傪擖椡偟偰偔偩偝偄丅\n";
print "\n";
print "\n";
print "\n";
print "\n";
print "\n";
### --- 僇僂儞僞張棟
sub counter {
# 僇僂儞僩僼傽僀儖撉傒崬傒
open(NO,"$countfile") || &error("Can't open $countfile",'0');
close(NO);
# 僇僂儞僩傾僢僾
if ($FORM{'mode'} eq "") {
# 僇僂儞僩僼傽僀儖峏怴
open(NO,">$countfile") || &error("Can't write $countfile",'0');
eval 'flock(NO,2);';
print NO $
eval 'flock(NO,8);';
close(NO);
# 寘悢挷惍
while(length($cnt) < $mini_fig) { $cnt = '0' . "$cnt"; }
@cnts = split(//,$cnt);
print "\n";
# 僇僂儞僞昞帵
if (-e "$gif_path/0.gif") {
foreach (0 .. $#cnts) {
print "$cnt";
print "\n";
### --- 儘僢僋僼傽僀儖乮symlink娭悢乯
sub lock1 {
local($retry) = 5;
while (!symlink(".", $lockfile)) {
if (--$retry $lockfile");
close(LOCK);
$flag = 1;
if ($flag == 0) { &error("LOCK is BUSY"); }
### --- 儊乕儖憲怣
sub mailto {
$mail_subj = "$title 偵搳峞偑偁傝傑偟偨丅";
&jcode'convert(*mail_subj,'jis');
&jcode'convert(*name,'jis');
&jcode'convert(*subj,'jis');
&jcode'convert(*comment,'jis');
$comment =~ s//\n/g;
$comment =~ s/&//g;
open(MAIL,"| $sendmail -t") || &error("Can't post sendmail");
print MAIL "X-Mailer: YYBBS MAILER\n";
print MAIL "To: $mailto\n";
# 儊乕儖傾僪儗僗偑側偄応崌偼僟儈乕儊乕儖偵抲偒姺偊
if ($FORM{'email'} eq "") { $email = "nomail\@xxx.xxx"; }
print MAIL "From: $email\n";
print MAIL "Subject: $mail_subj\n";
print MAIL "Content-Transfer-Encoding: 7bit\n";
print MAIL "Content-type: text/plain\n";
print MAIL "\n\n";
print MAIL "$mail_subj\n";
print MAIL "--------------------------------------------------------\n";
print MAIL "TIME : $date\n";
print MAIL "NAME : $name\n";
print MAIL "EMAIL: $FORM{'email'}\n";
if ($url ne "") { print MAIL "URL
: http://$url\n"; }
if ($FORM{'resno'} ne "") { $subj = "(Res Message)"; }
elsif ($FORM{'resno'} eq "" && $subj eq "") { $subj = "no title"; }
print MAIL "TITLE: $subj\n\n";
print MAIL "$comment\n\n";
print MAIL "--------------------------------------------------------\n";
close(MAIL);
### --- 僷僗儚乕僪埫崋張棟
sub passwd_encode {
($p1, $p2) = unpack("C2", $now);
$wk = $now / (60*60*24*7) + $p1 + $p2 - 8;
@saltset = ('a'..'z','A'..'Z','0'..'9','.','/');
$nsalt = $saltset[$wk % 64] . $saltset[$now % 64];
$ango = crypt($_[0], $nsalt);
### --- 僷僗儚乕僪徠崌張棟
sub passwd_decode {
if ($_[0] =~ /^\$1\$/) { $crptkey = 3; } # FreeBSD僒乕僶懳墳
else { $crptkey = 0; }
$check = "no";
if (crypt($plain_text, substr($_[0],$crptkey,2)) eq "$_[0]") {
$check = "yes";
### --- HTML偺僿僢僟乕 --- ###
sub header {
print "Content-type: text/html\n\n";
print "\n\n";
print "\n";
print "$title\n";
# body僞僌
if ($backgif) { $bgkey = "background=\"$backgif\" bgcolor=$bgcolor"; }
else { $bgkey = "bgcolor=$bgcolor"; }
print "\n";
### --- HTML偺僼僢僞乕 --- ###
sub footer {
## MakiMaki偝傫偺夋憸巊梡偺桳柍偵娭傢傜偢偙偺俀売強偺儕儞僋晹傪
## 嶍彍偡傞偙偲偼偱偒傑偣傫丅
print "\n";
print " & \n";
print "\n";
print "\n";
print "\n";
### --- 帺摦儕儞僋 --- ###
sub auto_link {
$_[0] =~ s/([^=^\"]|^)(http\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#]+)/$1"; }
if ($purl) { $purl=""; }
if ($pk) { $pnum = "$pk傊偺儗僗"; }
# 帺摦儕儞僋
if ($autolink) { &auto_link($pcom); }
# 曐懚婰帠傪僼僅乕儅僢僩
$html = <<"HTML";
[$pnum] $psub 搳峞幰丗$pname 搳峞擔丗$pdt$pcom$purl
push(@htmls,"$html");
@news = ();
foreach $line (@past) {
if ($line =~ //i) { }
push (@news,$line);
if ($line =~ //i) { push (@news,@htmls); }
push (@news,"\n\n");
# 夁嫀儘僌傪峏怴
open(OUT,">$pastfile") || &error("Can't write $pastfile");
print OUT @
close(OUT);
## 夁嫀儘僌師僼傽僀儖惗惉儖乕僠儞
sub next_log {
# 師僼傽僀儖偺偨傔偺僇僂儞僩傾僢僾
# 僇僂儞僩僼傽僀儖峏怴
open(NO,">$nofile") || &error("Can't write $nofile");
print NO "$count";
close(NO);
= "$past_dir/$count\.html";
## 怴婯夁嫀儘僌僼傽僀儖惗惉儖乕僠儞
sub new_log {
$new_flag = 1;
if ($backgif) { $bgkey = "background=\"$backgif\" bgcolor=$bgcolor"; }
else { $bgkey = "bgcolor=$bgcolor"; }
$past[0] = "夁嫀儘僌\n";
$past[1] = "\n";
$past[2] = "\n";
$past[3] = "\n";
$past[4] = "\n";
# 怴婯夁嫀儘僌僼傽僀儖傪惗惉峏怴
open(OUT,">$pastfile") || &error("Can't write $pastfile");
print OUT @
close(OUT);
# 僷乕儈僢僔儑儞傪666傊丅
chmod(0666,"$pastfile");

我要回帖

更多关于 北京冬天去哪儿玩儿 的文章

 

随机推荐