📄 install.cgi
字号:
#!/usr/bin/perl
#############################################################
# LeoBoard ver.5000 / LB5000 / 雷傲超级论坛 ver.5000
#
# 版权所有: 雷傲工作室(原蓝宝石软件工作室)
#
# 制作人 : 山鹰糊 (Shining Hu)
# 花无缺 (Ifairy Han)
#
# 主页地址: http://www.CGIer.com/ CGI 编程者之家
# http://www.LeoBoard.com/ 雷傲论坛支持主页
# http://www.leoBBS.com/ 本论坛直通车
# http://mail@17do.com/ 大家一起邮
#
# *************************
# LB论坛推荐虚拟主机服务商:
# 雷傲科技: http://www.leoboard.com.cn
# 全面支持LB所有功能,拥有2年提供LB论坛空间的以及500多个LB用户的经验,可以做的更好
# **************************
#
#############################################################
BEGIN {
$LBPATH = '.';
my $pgm = $0;
$pgm =~s/\\/\//g;
$pgm =~s/^.*\/([^\/]+)$/$1/g;
unless (-e $LBPATH.'/'.$pgm) {
foreach ($0, $ENV{'SCRIPT_FILENAME'}, $ENV{'PATH_TRANSLATED'}) {
s!\\!/!g; s/^(.*)\/[^\/]+$/$1/g;
if (-e $_ . '/' .$pgm) { $LBPATH = $_; last; }
}
}
unshift (@INC, "$LBPATH");
}
use LBCGI;
use Archive::Tar;
use Cwd;
$query = new LBCGI;
@params = $query->param;
foreach $param(@params) {
$theparam = $query->param($param);
$theparam =~ s/\@/\\\@/g;
$theparam =~ s/\'//g;
$theparam =~ s/\"//g;
${$param} = $theparam;
if ($param ne "action") {
$printme .= "\$" . "$param = \'$theparam\'\;\n";
}
}
$stylesheet =<<__end_of_sheet__;
<style>
<!--
A:visited { TEXT-DECORATION: none }
A:active { TEXT-DECORATION: none }
A:hover { TEXT-DECORATION: underline overline }
A:link { text-decoration: none;}
A:visited { text-decoration: none;}
A:active { TEXT-DECORATION: none;}
A:hover { TEXT-DECORATION: underline overline}
.t { LINE-HEIGHT: 1.4 }
BODY { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
TD { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
SELECT { FONT-FAMILY: 宋体; FONT-SIZE: 9pt; }
INPUT { FONT-FAMILY: 宋体; FONT-SIZE: 9pt; height:22px; }
TEXTAREA{ FONT-FAMILY: 宋体; FONT-SIZE: 9pt; }
DIV { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
FORM { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
OPTION { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
P { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
TD { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
BR { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
-->
</style>
__end_of_sheet__
$thisprog = "install.cgi"; $|=1;
$XHTML = 0;
if ($action ne "final_step" || !$action) { print header(-charset=>"gb2312"); print "<head><title>LB5000 MX 安装向导 -- CGI 编程者之家</title></head>$stylesheet<body>"; }
if ($action eq "step_two") {
if (-e "${lbdir}cgi-bin.tar"){
my $cwd = cwd();
my $tar = Archive::Tar->new();
unless ($tar->read("${lbdir}cgi-bin.tar", 0)) {
print qq~<td class='w' align='left' width='60%'>cgi-bin.tar不能读取,请检查是否使用二进制模式上传(一定要这个模式上传这个压缩包)</td></tr>~;
exit;
}
chdir $lbdir;
unless (-w $lbdir){
chmod (0777,$lbdir) if ($lbdir !~ m/\/cgi-bin\/$/i);
opendir (FILE, ".");
@filename = readdir(FILE);
closedir (FILE);
foreach (@filename) {
next if (($_ eq ".")||($_ eq ".."));
chmod(0755,"./$_");
}
}
my @files = $tar->list_files();
$tar->extract(@files, $lbdir);
chdir $cwd;
}
if (-e "${lbdir}non-cgi.tar"){
my $cwd = cwd();
my $tar = Archive::Tar->new();
unless ($tar->read("${lbdir}non-cgi.tar", 0)) {
print qq~<td class='w' align='left' width='60%'>non-cgi.tar不能读取,请检查是否使用二进制模式上传(一定要这个模式上传这个压缩包)</td></tr>~;
exit;
}
mkdir($imagesdir,0777);
chdir $imagesdir;
unless (-w $imagesdir){
chmod (0777,$imagesdir);
opendir (FILE, ".");
@filename = readdir(FILE);
closedir (FILE);
foreach (@filename) {
chmod(0777,"./$_");
}
}
my @files = $tar->list_files();
$tar->extract(@files, $imagesdir);
chdir $cwd;
}
$endprint = "1\;\n";
$errorflag = 0;
$filetomake = "$lbdir" . "data/boardinfo.cgi";
open(FILE,">$filetomake");
print FILE "$printme";
print FILE "\$adfoot = '<a href=http://www.leobbs.com/ target=_blank><img src=\$imagesurl/images/banner.gif border=0></a>';\n";
print FILE "\$adscript = '<a href=http://www.leobbs.com/ target=_blank><img src=\$imagesurl/images/banner.gif border=0></a>';\n";
print FILE "\n";
print FILE $endprint;
close(FILE);
# &chmodfiles;
if (-e $filetomake && -w $filetomake) {
$saved_variables = qq(<font face="宋体">所有输入的信息已经成功的写入 ${lbdir}data/boardinfo.cgi 文件中。</font>);
}
else {
$saved_variables = qq(<font face="宋体" color="#FF0000">对不起,不能够保存信息。<BR>
请检测您输入的 ${lbdir}data 数据路径是否正确?是不是最后遗漏了除号 '/'?<BR>
如果正确,请检查 'data' 目录属性是否设置正确。请返回修改后重新递交表单一次。);
$errorflag = "1";
}
$filetocheck = "$lbdir" . "leoboard.cgi";
if (-e $filetocheck) {
$found_cgi = qq(<font face="宋体" color="#0000FF">正确</font>);
}
else {
$errorflag = "1"; $found_cgi = qq(<font face="宋体" color="#FF0000">错误 - 找不到 $filetocheck,数据路径是不是最后遗漏了除号 '/'?请返回重新输入正确信息。</font>);
}
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 * 10000000);
$x =sprintf("%08d",$x);
rename("${lbdir}members","${lbdir}members$x");
$memdir="members$x";
}
opendir (DIRS, "$lbdir");
my @files2 = readdir(DIRS);
closedir (DIRS);
my @memdir = grep(/^members/i, @files2);
$memdir = $memdir[0];
my @msgdir = grep(/^messages/i, @files2);
$msgdir = $msgdir[0];
if ($msgdir eq "messages") {
srand;
$x = rand;
$x = int($x * 10000000);
$x =sprintf("%08d",$x);
rename("${lbdir}messages","${lbdir}messages$x");
$msgdir="messages$x";
}
opendir (DIRS, "$lbdir");
my @files2 = readdir(DIRS);
closedir (DIRS);
my @msgdir = grep(/^messages/i, @files2);
$msgdir = $msgdir[0];
$dirtocheck = "$lbdir" . "data";
if (-d "$dirtocheck") {
$datadir = "找到";
$makefile = "$lbdir" . "data/test.txt";
open (TEST, ">$makefile") or $datawritable = "目录 data 为不可写,请改变属性为 777 。";
print TEST "-";
close (TEST);
$datawritable = "属性为<b>可写</b>!" if (!$datawritable);
unlink "$makefile";
} else { $errorflag = "1"; $datadir = "<b>没有找到</b>!"; }
$dirtocheck = "$lbdir" . "help";
if (-d "$dirtocheck") {
$helpdir = "找到";
$makefile = "$lbdir" . "help/test.txt";
open (TEST, ">$makefile") or $helpwritable = "目录 help 为不可写,请改变属性为 777 。";
print TEST "-";
close (TEST);
$helpwritable = "属性为<b>可写</b>!" if (!$helpwritable);
unlink "$makefile";
} else { $helpdir = "<b>没有找到</b>!"; }
$dirtocheck = "$lbdir" . "$memdir";
if (-d "$dirtocheck") {
$membersdir = "找到";
$makefile = "$lbdir" . "$memdir/test.txt";
open (TEST, ">$makefile") or $memberswritable = "目录 $memdir 为不可写,请改变属性为 777 。";
print TEST "-";
close (TEST);
$memberswritable = "属性为<b>可写</b>!" if (!$memberswritable);
unlink "$makefile";
} else { $errorflag = "1"; $membersdir = "<b>没有找到</b>!"; }
$dirtocheck = "$lbdir" . "$msgdir";
if (-d "$dirtocheck") {
$messagesdir = "找到";
$makefile = "$lbdir" . "$msgdir/test.txt";
open (TEST, ">$makefile") or $messageswritable = "目录 $msgdir 为不可写,请改变属性为 777 。";
print TEST "-";
close (TEST);
$messageswritable = "属性为<b>可写</b>!" if (!$messageswritable);
unlink "$makefile";
} else { $errorflag = "1"; $messagesdir = "<b>没有找到</b>!"; }
$filetocheck = "$imagesdir" . "images/logo.gif";
if (-e $filetocheck) {
$found_image = qq(<font face="宋体" color="#0000FF">正确</font>);
}
else {
$errorflag = "1"; $found_image = qq(<font face="宋体" color="#FF0000">错误,请注意路径最后不要遗漏除号 '/',请点击后退填入正确的信息(是不是你遗漏上传了 images 下的 logo.gif 呢?程序是利用这个文件是否存在来判断你设置是否正确的)。</font>);
}
$dirtocheck = "$imagesdir" . "images";
if (-d "$dirtocheck") { $images_dir = "找到!"; } else { $errorflag = "1"; $images_dir = "<b>没有找到</b>!"; }
$dirtocheck = "$imagesdir" . "emoticons";
if (-d "$dirtocheck") { $emoticonsdir = "找到!"; } else { $errorflag = "1"; $emoticonsdir = "<b>没有找到</b>!"; }
$dirtocheck = "$imagesdir" . "avatars";
if (-d "$dirtocheck") { $avatarsdir = "找到!"; } else { $errorflag = "1"; $avatarsdir = "<b>没有找到</b>!"; }
$dirtocheck = "$imagesdir" . "usravatars";
if (-d "$dirtocheck") {
$usravatarsdir = "找到!";
$makefile = "$dirtocheck" . "/test.txt";
open (TEST, ">$makefile") or $usravatarswritabler = "目录 $dirtocheck 为不可写,请改变属性为 777 。";
print TEST "-";
close (TEST);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -