📄 batbackup.php
字号:
<?
/*
BMForum Plus! Bulletin Board Systems
Version : Plus!
This is a freeware, but don't change the copyright information.
A SourceForge Project - GNU Licence project.
Web Site: http://www.bmforum.com
Copyright (C) Bluview Technology
*/
$thisisout="yes";
$thisprog="batbackup.php";
$forumfile="datafile/forumdata.php";
require("adminglobal.php");
require("datafile/config.php");
if($useraccess!="1" || $admgroupdata[19]!="1") {
adminlogin();
}
@set_time_limit(300);
print <<<EOT
<html>
<head>
<title>$arr_ad_lng[39]</title>
<style type="text/css">
BODY { COLOR: #3F3849; FONT-FAMILY: Verdana,Arial; FONT-SIZE: 9pt;
SCROLLBAR-FACE-COLOR: #799AE1;
SCROLLBAR-HIGHLIGHT-COLOR: #799AE1;
SCROLLBAR-SHADOW-COLOR: #799AE1;
SCROLLBAR-DARKSHADOW-COLOR: #799AE1;
SCROLLBAR-3DLIGHT-COLOR: #799AE1;
SCROLLBAR-ARROW-COLOR: #FFFFFF;
SCROLLBAR-TRACK-COLOR: #AABFEC;
}
A:LINK {COLOR: #3F3849; TEXT-DECORATION: none}
A:VISITED {COLOR: #3F3849; TEXT-DECORATION: none}
/* hover color for links (Internet Explorer only) */
A:HOVER {COLOR: #F5D300; BACKGROUND-COLOR: #40364d}
A:ACTIVE {COLOR: #F5D300; BACKGROUND-COLOR: #40364d}
.t { LINE-HEIGHT: 1.4}
TD,SELECT,TEXTAREA,DIV,FORM,OPTION,P{COLOR:333333; FONT-FAMILY: Tahoma; FONT-SIZE: 9pt}
INPUT { FONT-FAMILY: Tahoma; FONT-SIZE: 9pt; height:22px; }
</style>
</head>
<body bgcolor=#799AE1 topmargin=5 leftmargin=5>
</td><td width=70% valign=top bgcolor=#D6DFF7>
<table width=100% cellpadding=6 cellspacing=0 border=0>
EOT;
print "<tr><td bgcolor=#0041BD colspan=2><font color=#D6DFF7>
<b>$arr_ad_lng[260]</b>
</td></tr>";
if($action=="delfolder" && is_dir($dirname)){
kill_dir($dirname);
@rmdir($dirname);
$title="$arr_ad_lng[802]";
$status="$arr_ad_lng[870]";
print_info();
echo $showerror;
exit;
}
if (empty($action)) {
if(function_exists('gzopen')){
$isgzipopen="<input type=checkbox checked name=gzip value=yes>$arr_ad_lng[872]";
}
print <<<EOT
<tr>
<td bgcolor=#F9FAFE align=center colspan=2>
<b>$arr_ad_lng[261]</b>
</td>
</tr>
<form action=batbackup.php?action=forum&id=get method=post>
<tr>
<td bgcolor=#D6DFF7 colspan=2><br>$tab_top
$arr_ad_lng[262]<br><input type=checkbox value=yes checked name=lianm>$arr_ad_lng[263] <input type=checkbox checked value=yes name=banzhu>$arr_ad_lng[264] <input type=checkbox checked value=yes name=usergroup>$arr_ad_lng[265] <input type=checkbox checked value=yes name=bbsusergroup>$arr_ad_lng[266] <input type=checkbox checked value=yes name=emoticons>$arr_ad_lng[267] <input type=checkbox checked value=yes name=zxfz>$arr_ad_lng[268] <input type=checkbox checked value=yes name=welcomeinfor>$arr_ad_lng[269]<br><input type=checkbox checked value=yes name=annms>$arr_ad_lng[270] <input type=checkbox checked value=yes name=fuser>$arr_ad_lng[271] <input type=checkbox checked value=yes name=adsinfo>$arr_ad_lng[272]<br><br>$arr_ad_lng[273]
$tab_bottom <br><br>
<b>$arr_ad_lng[274]</a></b><br><br>
$tab_top
$isgzipopen<br>$arr_ad_lng[275] <input type=text name=everytis value=1000> <br>
<input type=radio checked value='' name=bakdirtypes>$arr_ad_lng[276]<br>
<input type=radio value='spec' name=bakdirtypes>$arr_ad_lng[277]<input type=text value='bak$timestamp' name='specdirname'><br><b>$arr_ad_lng[278]</b><br><br>
$arr_ad_lng[279]<br>
<br>>><input type=submit value=$arr_ad_lng[280]></a>
$tab_bottom
</form>
</td>
</tr>
</td></tr></table></body></html>
EOT;
exit;
}elseif($action=="forum") {
if($id=="get") {
if (file_exists($forumfile)) {
$forumdata=file($forumfile);
$count=count($forumdata);
for($i=0; $i<$count; $i++) {
$detail=explode("|",$forumdata[$i]);
if ($detail[0]!="<?exit;?>category" ) {
$id=$detail[3];
$title="$arr_ad_lng[281]";
if($bakdirtypes!="spec"){
$newdir="bak$timestamp";
@mkdir($newdir,0777);
@mkdir($newdir."/other",0777);
}else{
$newdir=$specdirname;
if(!file_exists($newdir)){
@mkdir($newdir,0777);
}
if(!file_exists($newdir."/other")){
@mkdir($newdir."/other",0777);
}
}
$filelists="";
if($lianm=="yes"){
@copy("datafile/shareforum.php","$newdir/other/shareforum.php");
$filelists.="shareforum.php|$arr_ad_lng[263]|\n";
$status="$arr_ad_lng[282]<br>";
}
if($banzhu=="yes"){
@copy("datafile/admin.php","$newdir/other/admin.php");
$filelists.="admin.php|$arr_ad_lng[264]|\n";
$status.="$arr_ad_lng[283]<br>";
}
if($usergroup=="yes"){
@copy("datafile/usergroup.php","$newdir/other/usergroup.php");
@copy("datafile/admingroup.php","$newdir/other/admingroup.php");
$filelists.="usergroup.php|$arr_ad_lng[265]|\n";
$filelists.="admingroup.php|$arr_ad_lng[285]|\n";
$status.="$arr_ad_lng[284]<br>";
}
if($bbsusergroup=="yes"){
@mkdir($newdir."/other/usergroup",0777);
$dh=opendir("datafile/usergroup");
while (false !== ($abusergroup = readdir($dh))) {
if (($abusergroup!=".") && ($abusergroup!="..") && ($abusergroup!=""))
$filelists.="usergroup/".$abusergroup.",";
@copy("datafile/usergroup/$abusergroup","$newdir/other/usergroup/$abusergroup");
}
closedir($dh);
$filelists.="|$arr_ad_lng[266]|\n";
$status.="$arr_ad_lng[286]<br>";
}
if($emoticons=="yes"){
@copy("datafile/emoticon.php","$newdir/other/emoticon.php");
$filelists.="emoticon.php|$arr_ad_lng[267]|\n";
$status.="$arr_ad_lng[287]<br>";
}
if($zxfz=="yes"){
@copy("datafile/zy.php","$newdir/other/zy.php");
$filelists.="zy.php|$arr_ad_lng[268]|\n";
$status.="$arr_ad_lng[288]<br>";
}
@copy("datafile/lastreply.php","$newdir/other/lastreply.php");
$filelists.="lastreply.php|$arr_ad_lng[268]-2|\n";
if($annms=="yes"){
@copy("datafile/announcesys.php","$newdir/other/announcesys.php");
@copy("datafile/announcement.php","$newdir/other/announcement.php");
$filelists.="announcesys.php,announcement.php|$arr_ad_lng[270]|\n";
$status.="$arr_ad_lng[289]<br>";
}
if($welcomeinfor=="yes"){
@copy("datafile/welcome.php","$newdir/other/welcome.php");
$filelists.="welcome.php|$arr_ad_lng[269]|\n";
$status.="$arr_ad_lng[290]<br>";
}
if($fuser=="yes"){
@copy("datafile/idbans.php","$newdir/other/idbans.php");
@copy("datafile/ipbans.php","$newdir/other/ipbans.php");
@copy("datafile/bannames.php","$newdir/other/bannames.php");
@copy("datafile/regipbans.php","$newdir/other/regipbans.php");
@copy("datafile/banuserposts.php","$newdir/other/banuserposts.php");
@copy("datafile/postbans.php","$newdir/other/postbans.php");
$filelists.="idbans.php,ipbans.php,bannames.php,regipbans.php,banuserposts.php,postbans.php|$arr_ad_lng[271]|\n";
$status.="$arr_ad_lng[291]<br>";
}
if($adsinfo=="yes"){
@copy("datafile/ads2.php","$newdir/other/ads2.php");
@copy("datafile/topads.php","$newdir/other/topads.php");
@copy("datafile/ads.php","$newdir/other/ads.php");
@copy("datafile/postads.php","$newdir/other/postads.php");
$filelists.="ads2.php,topads.php,ads.php,postads.php|$arr_ad_lng[272]|\n";
$status.="$arr_ad_lng[292]<br>";
}
writetofile($newdir."/filelist.bs5",$filelists);
$gotourl="batbackup.php?action=forum&gzip=$gzip&everytis=$everytis&lasti=$i&id=$id&dir=$newdir&lastpf=new";
$status.="$arr_ad_lng[293]<br><a href=batbackup.php?action=forum&gzip=$gzip&everytis=$everytis&lasti=$i&id=$id&dir=$newdir&lastpf=new>$arr_ad_lng[294]</a>";
print_info();
echo $showerror;
break;
}
}
}else{
$title="$arr_ad_lng[295]";
$status="$arr_ad_lng[296]";
print_info();
echo $showerror;
}
}else{
$everyok=$everytis+1;
$icount=0;
$dh=opendir("{$idpath}forum$id/");
while (false !== ($postfile = readdir($dh))) {
if (ereg("^f_[0-9]+$",$postfile)) {
if($lastpf=="new" || $postfile==$lastpf){
if ($icount==$everyok) break;
if ($postfile==$lastpf) $lastpf="new";
$icount++;
$pfile="{$idpath}forum$id/$postfile";
$echoinfo.="-post-\n";
$echoinfo.=readfromfile($pfile);
if (file_exists("$pfile.buy")) {
$echoinfo.="--buy--\n";
$temp=trim(readfromfile("$pfile.buy"));
$temp.="\n";
$echoinfo.=$temp;
} elseif (file_exists("$pfile.sta")) {
$echoinfo.="-sta-\n";
$temp=trim(readfromfile("$pfile.sta"));
$temp.="\n";
$echoinfo.=$temp;
}
}
}
}
closedir($dh);
$newfilename="$dir/forum$id.$timestamp.bmb";
if($gzip=="yes"){
gzipbackup($newfilename,str_replace("[/img]\n\n","[/img]<br><br>",$echoinfo));
}else{
writetofile($newfilename,str_replace("[/img]\n\n","[/img]<br><br>",$echoinfo));
}
writetofile("$dir/fdatabak.bm5","forum$id.$timestamp.bmb|$id|\n","a");
$forumdata=file($forumfile);
$count=count($forumdata);
if ($icount==$everyok){
$gotourl="batbackup.php?action=forum&gzip=$gzip&everytis=$everytis&lasti=$lasti&id=$id&dir=$dir&lastpf=$postfile";
}else{
$lasti=$lasti+1;
$gotourl="batbackup.php?action=user&gzip=$gzip&dir=$dir";
for($i=$lasti; $i<$count; $i++) {
$detail=explode("|",$forumdata[$i]);
if ($detail[0]!="<?exit;?>category") { $newid=$detail[3];
$gotourl="batbackup.php?action=forum&gzip=$gzip&everytis=$everytis&lasti=$i&id=$newid&dir=$dir&lastpf=new";
break;
}
}
}
$title="$arr_ad_lng[297]";
$status="$arr_ad_lng[297](ID:$id @ $timestamp)$arr_ad_lng[298]<br><a href=$gotourl>$arr_ad_lng[299]</a>";
print_info();
echo $showerror;
}
}elseif($action=="user") {
$dh=opendir("$id_unique/");
while (false !== ($userfile = readdir($dh))) {
if (($userfile!=".") && ($userfile!="..") && !strpos($userfile,".snd") && !strpos($userfile,".add") && !strpos($userfile,".frd") && !strpos($userfile,".rec")) {
$echoinfo.=trim(readfromfile("$id_unique/$userfile"))."\n";
}
}
closedir($dh);
$newfilename="$dir/user.bmb";
if($gzip=="yes"){
gzipbackup($newfilename,str_replace("\n%","%",$echoinfo));
}else writetofile($newfilename,str_replace("\n%","%",$echoinfo));
$txtofrec.="$arr_ad_lng[300]";
$forumdata=file($forumfile);
$count=count($forumdata);
for($i=0; $i<$count; $i++) {
$detail=explode("|",$forumdata[$i]);
if ($detail[0]!="<?exit;?>category") {
$txtofrec.="forum{$detail[3]}.*.bmb 銆巤$detail[1]}銆
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -