⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 conv.cgi

📁 一个linux论坛
💻 CGI
字号:
#!/usr/bin/perl 

###########################################################
# LB5000(ib2000) 用户所有资料转换器,LB5000 II 用户的福音!
# 程序编制: 山鹰糊  webmaster@cgier.com
# 版权所有: CGI 编程者之家  http://www.CGIer.com
###########################################################

eval {
($0 =~ m,(.*)/[^/]+,)   and unshift (@INC, "$1");
($0 =~ m,(.*)\\[^\\]+,) and unshift (@INC, "$1");
require "lb.lib.pl";
require "data/boardinfo.cgi";
};
if ($@) {
    print header(-charset=>gb2312); print start_html(-title=>"LB5000 出错!");
    print "不能够找到文件:$@\n如果您使用的是 Windows 类操作系统,请在每一个程序中更改 require 的设置,填入绝对路径!";
    print end_html; exit;
}

$|++;                                     # Unbuffer the output

$lbdir = $ikondir if ($ikondir ne "");

print ("Content-type: text/html\n\n"); 
if ((-e "${lbdir}data/mpic.cgi")||(-e "${lbdir}data/template.cgi")||(-e "${lbdir}data/counter.cgi")) {
print "你论坛数据已经转换过了,请不要多次运行 conv.cgi 文件,谢谢!\n\n";
print "<BR><BR><B><a href=conv1.cgi>点击这里进行下一步的升级  ----〉〉〉</a></b><BR><BR><BR><BR>";
print "程序编制:<a href=\"mailto:webmaster\@cgier.com\">山鹰(糊)</a><BR>";
print "版权所有:<a href=\"http://www.cgier.com/\">CGI 编程者之家</a>";
exit;
}

$userhead= "$lbdir" . "data";
unlink ("$userhead/onlinedata.cgi");
unlink ("$userhead/privacy.dat");
unlink ("$userhead/hacklog.cgi");
rename ("$userhead/template.dat", "$userhead/template.cgi");
rename ("$userhead/counter.dat", "$userhead/counter.cgi");
$filetomake = "$lbdir" . "data/counter.cgi";
open(FILE,"$filetomake");
$count = <FILE>;
close(FILE);

if ($count =~ /\|/) {
	($count1,$count2,$onlinemax) = split(/\|/, $count);
        $nono111=time;
	open(FILE, ">$filetomake");
	print FILE "$count1\t$count2\t$onlinemax\t$nono111\t";
	close(FILE);
	print "论坛统计转换完成。<BR><BR>";
}

$filetomake = "$lbdir" . "data/recentpost.cgi";
open(FILE,"$filetomake");
@count = <FILE>;
close(FILE);
undef @totledata;
foreach $data (@count) {
	@okok = split(/\|/,$data);
	$okokok = join("\t",@okok);
	push(@totledata, $okokok);
}
open(FILE, ">$filetomake");
foreach $line (@totledata) {
	chomp $line;
	$line =~ s/\n//isg;
	print FILE "$line\n" if ($line ne "");
}
close(FILE);

$filetomake = "$lbdir" . "data/shareforums.cgi";
open(FILE,"$filetomake");
@count = <FILE>;
close(FILE);
undef @totledata;
foreach $data (@count) {
	@okok = split(/\|/,$data);
	$okokok = join("\t",@okok);
	push(@totledata, $okokok);
}
open(FILE, ">$filetomake");
foreach $line (@totledata) {
	chomp $line;
	$line =~ s/\n//isg;
	print FILE "$line\n" if ($line ne "");
}
close(FILE);

$userhead= "$lbdir" . "data";
$userdir=$userhead; 
opendir (MEMBERDIR, "$userdir"); 
@stats = readdir(MEMBERDIR);
closedir (MEMBERDIR); 
@stats = grep(/^news/, @stats); 
$totaluserdata=$#stats+1;
for ($i=0;$i<$totaluserdata;$i++) { 
     $name = @stats[$i];
     $filesname="$userhead/$name";
     open(FILE,"$filesname"); 
     @array=<FILE>;
     close(FILE);
     undef @totledata;
	foreach $data (@array) {
		@okok = split(/\|/,$data);
		$okokok = join("\t",@okok);
		push(@totledata, $okokok);
	}
	open(FILE, ">$filesname");
	foreach $line (@totledata) {
		chomp $line;
		$line =~ s/\n//isg;
		print FILE "$line\n" if ($line ne "");
	}
	close(FILE);
}
print "公告转换成功。<BR><BR>";

$userhead= "$lbdir" . "members";
$userdir=$userhead; 
opendir (MEMBERDIR, "$userdir"); 
@stats = readdir(MEMBERDIR);
closedir (MEMBERDIR); 
@stats = grep(/cgi$/, @stats); 
$totaluserdata=$#stats+1;
$a =0;
for ($i=0;$i<$totaluserdata;$i++) { 
     $name = @stats[$i];
     $filesname="$userhead/$name";
     open(FILE,"$filesname"); 
     $array=<FILE>;
     close(FILE);
     next if ($array !~ /\|/);
     @okok = split(/\|/,$array);
     $okokok = join("\t",@okok);
     chomp $okokok;
     $okokok .= "\t";
     unlink ("$filesname");
     $name =~ tr/A-Z/a-z/;
     $okokok =~ s/\n//isg;
     open(FILE,">$userhead/$name"); 
     print FILE "$okokok\n";
     close(FILE); 
     $a++;
}

opendir (DIRS, "$lbdir");
my @files2 = readdir(DIRS);
closedir (DIRS);
my @memdir = grep(/^members/, @files2);
$memdir=@memdir;
if ($memdir eq 0) {
	@memdir = grep(/^MEMBERS/, @files2);
	rename("${lbdir}MEMBERS","${lbdir}members");
}
if ($memdir eq 0) {
	@memdir = grep(/^Members/, @files2);
	rename("${lbdir}Members","${lbdir}members");
}
$memdir = $memdir[0];

if ($memdir eq "members") {
	srand;
	$x = rand;
	$x = int($x * 100000);
	$x =sprintf("%06d",$x);
	rename("${lbdir}members","${lbdir}members$x");
}

print "用户库转换成功,共转换 $a 个用户,总共 $totaluserdata 个注册用户。<BR><BR>";

$userhead= "$lbdir" . "messages";
$userdir=$userhead; 
opendir (MEMBERDIR, "$userdir"); 
@stats = readdir(MEMBERDIR); 
closedir (MEMBERDIR); 
@stats = grep(/cgi$/, @stats); 
$totaluserdata=$#stats+1;
for ($i=0;$i<$totaluserdata;$i++) { 
     $name = @stats[$i];
     $filesname="$userhead/$name";
     open(FILE,"$filesname"); 
     @array=<FILE>;
     close(FILE);
     
     undef @totledata;
     foreach $data (@array) {
	@okok = split(/\|/,$data);
     	$okokok = join("\t",@okok);
	push(@totledata, $okokok);
     }

     open(FILE, ">$filesname");
	foreach $line (@totledata) {
	    chomp $line;
	    $line =~ s/\n//isg;
	    print FILE "$line\n" if ($line ne "");
	}
    close(FILE);
}
print "用户短消息数据库转换成功。<BR><BR>";

	$filetoopen = "$lbdir" . "data/allforums.cgi";
        open(FILE, "$filetoopen");
        @files = <FILE>;
        close(FILE);
        
        undef @totleforums;
        foreach $data (@files) {
	    @okok = split(/\|/,$data);
     	    $okokok = join("\t",@okok);
	    push(@totleforums, $okokok);
        }

        open(FILE, ">$filetoopen");
	    foreach $line (@totleforums) {
	    	chomp $line;
		$line =~ s/\n//isg;
	    	print FILE "$line\n" if ($line ne "");
	    }
        close(FILE);

	$filetoopen = "$lbdir" . "data/allforums.cgi";
        open(FILE, "$filetoopen");
        @files = <FILE>;
        close(FILE);
        
        $check = @files;
        foreach (@files) {
             chomp($_);
             ($tempno, $trash) = split(/\t/,$_);
             unlink ("${lbdir}forum$tempno/list.cgi");
             $dirtoopen = "$lbdir" . "forum$tempno";
	     opendir (DIR, "$dirtoopen");
	     @dirdata = readdir(DIR);
	     closedir (DIR);

	     @malfiles = grep(/mal$/,@dirdata);
	     foreach (@malfiles) {
	     	unlink ("${lbdir}forum$tempno/$_");
	     }

	     @filefiles = grep(/file$/,@dirdata);
	     foreach (@filefiles) {
	     	rename ("${lbdir}forum$tempno/$_", "${lbdir}forum$tempno/$_.pl");
	     }

	     @thdfiles = grep(/thd$/,@dirdata);
	     foreach (@thdfiles) {
		$filesname="${lbdir}forum$tempno/$_";
     		open(FILE,"$filesname"); 
     		@array=<FILE>;
     		close(FILE);
		undef @totledata;
		foreach $data (@array) {
			@okok = split(/\|/,$data);
			$okokok = join("\t",@okok);
			push(@totledata, $okokok);
		}
		unlink ("$filesname");
		open(FILE, ">$filesname.cgi");
		foreach $line (@totledata) {
			chomp $line;
			$line =~ s/\n//isg;
			print FILE "$line\n" if ($line ne "");
		}
		close(FILE);
	     }
	     
	     @plfiles  = grep(/pl$/, @dirdata);
	     foreach (@plfiles) {
		 $filesname="${lbdir}forum$tempno/$_";
		 open(FILE,"$filesname"); 
		 $array=<FILE>;
		 close(FILE);
     		 next if ($array !~ /\|/);
     		 @okok = split(/\|/,$array);
     		 $okokok = join("\t",@okok);
     		 chomp $okokok;
     		 $okokok .= "\t";
		 $okokok =~ s/\n//isg;
     		 open(FILE,">$filesname"); 
     		 print FILE "$okokok\n";
     		 close(FILE); 
	    }
	    
	    rebuildLIST(-Forum=>"$tempno");
	    print "forum$tempno 论坛转换完成。<BR><BR>";
	}
      mkdir ("${imagesdir}midi", 0777);
      mkdir ("${imagesdir}usr", 0777);
      mkdir ("${imagesdir}usravatars", 0777);
      mkdir ("${lbdir}backup", 0777);
      mkdir ("${lbdir}memfriend", 0777);
      mkdir ("${lbdir}memfav", 0777);

print "<BR><BR><B><a href=conv1.cgi>点击这里进行下一步的升级  ----〉〉〉</a></b><BR><BR><BR><BR>";

print "程序编制:<a href=\"mailto:webmaster\@cgier.com\">山鹰(糊)</a><BR>";
print "版权所有:<a href=\"http://www.cgier.com/\">CGI 编程者之家</a>";
exit;

# 程序完。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -