📄 backup.php
字号:
<?php
/**********************************************************************
Dream Fly GuestBook 3.1 for Text (v20040421)
程序设计:浪 者
版权所有:(C)1999-2003 酷虫工作室
修 改:2004-04-21
演 示:http://xpower.51j.cn
http://hotage.1816.net
************************************************************************/
die('未完成');
if(!defined('INDEX_POST')) die('非法操作!<a href=../index.php>返回</a>');
if($ADMIN){
$ListDatas = file( DATA_LIST_FILE ) ;
array_shift( $ListDatas );
$msgCount = count($ListDatas);
// 以下为主模块,斑竹使用
if($submit){
$act = array('[ <a href=index.php?MOD=system>返回控制面板</a> ]',
'<a href=index.php>进入留言内容管理</a>',
'<a href=index.php?MOD=logout>退出登录</a>');
switch($submit){
case 'DEL_ORDER_NEW' :
rsort( $ListDatas );// 高 --> 低
$delCount = ( $msgCount < $submitVal) ? $msgCount : $submitVal;
for( $i=0; $i< $delCount; $i++ ){
@unlink(DATA_PATH.trim($ListDatas[$i]).".php");
$ListDatas[$i]='';
}
writetofile(DATA_LIST_FILE, "<? die() ?>\n".implode('', $ListDatas) );
ShowMsg("成功的删除了 $delCount 条最新的留言记录!您还想作些什么呢?",MSG_OK, $act);
break;
case 'DEL_ORDER_OLD' :
rsort( $ListDatas );// 高 --> 低
$delCount = ( $msgCount < $submitVal) ? $msgCount : $submitVal;
for( $i=$msgCount-1 ; $i>= $msgCount - $delCount; $i-- ){
@unlink(DATA_PATH.trim($ListDatas[$i]).".php");
$ListDatas[$i]='';
}
writetofile(DATA_LIST_FILE, "<? die() ?>\n".implode('', $ListDatas) );
ShowMsg("成功删除了 $delCount 条最旧的留言记录!您还想作些什么呢?",MSG_OK, $act);
break;
case 'DEL_DATE':
$timemap = split(",",$submitVal);
rsort( $ListDatas );// 高 --> 低
$delCount = 0;
foreach($ListDatas as $fname){
if($fname >= $timemap[0] && $fname <= $timemap[1]){
@unlink(DATA_PATH.trim($ListDatas[$i]).".php");
$ListDatas[$i]='';
$delCount ++;
}
}
if( $delCount > 0 ) writetofile(DATA_LIST_FILE, "<? die() ?>\n".implode('', $ListDatas) );
ShowMsg("成功删除了 $delCount 条指定的留言记录!您还想作些什么呢?",MSG_OK, $act);
break;
case 'DEL_ALL_SAFE' :
tempnam ( "." , "__TMP_DATA");
// 移动 DATA_PATH
if(!file_exists(BACKUP_PATH))
mkdir(BACKUP_PATH);
rename(DATA_PATH, BACKUP_PATH."TMP_".date("Ymd_His") );
// 重建 DATA_PATH
mkdir(DATA_PATH);
writetofile( DATA_LIST_FILE, "<? die() ?>\n" );
ShowMsg('您已经成功的删除了所有留言记录!您还想作些什么呢?',MSG_OK, $act);
break;
case 'DEL_ALL_KILL' :
foreach (glob(DATA_PATH."*.php") as $filename) {
@unlink($filename);
}
writetofile( DATA_LIST_FILE, "<? die() ?>\n" );
ShowMsg('您已经成功的删除了所有留言记录!您还想作些什么呢?',MSG_OK, $act);
break;
case 'DEL_MID' :
//break;
case 'DEL_IDX' :
//break;
default:
ShowMsg('非法操作!参数设置错误。');
}
}else{
SetupBar('数据备份');
if( $msgCount ){
$msgTime[0] = date('Y 年 m 月 d 日', trim(max($ListDatas)) );
$msgTime[1] = date('Y 年 m 月 d 日', trim(min($ListDatas)) );
$msg = "$msgTime[0] - $msgTime[1]";
}else{
$msg = '没有留言';
}
?>
<input type=hidden name=submit value="" id=submit>
<input type=hidden name=submitVal value="" id=submitVal>
<table border=0 cellpadding=2 cellspacing=0 width=500>
<tr><td><br><span class=insist>☆</span> 优 化 数 据 >>><hr size=1 width=70% align="left"></td></tr>
<tr><td>
<ul>
<li>当使用一段时间后建议使用该选项<br>
</ul><br>
<p align="right"><input type=submit class=button value="执行优化" onClick="if(msgCount){ return doDelOrder() }else{alert('没有留言数据,无法进行数据优化!'); return false}">
</td></tr>
<tr><td><span class=insist>☆</span> 数 据 备 份 >>><hr size=1 width=70% align="left"></td></tr>
<tr><td>
<ul>
<li>说明文字:<input type="text" class=text size=16 id=dateBeginYear value=2004 maxlength=4 onKeydown="checkInput()" onChange="if(!(this.value>=1990 && this.value<=3000)) {alert('输入年份错误!请输入正确的 4 位年份。');this.focus();this.select();return false}"></li>
<li>选择操作:<br>
<input type=radio name=r1> <label for>备份后删除当前留言数据</label><br>
<input type=radio name=r1> <label for>仅备份当前留言数据</label>
</ul><br>
<p align="right"><input class=button type=submit value="立即备份" onClick="if(msgCount){ return doDelDate() }else{alert('没有留言数据,无法进行数据备份!'); return false}">
</td></tr>
<tr><td><span class=insist>☆</span> 数 据 恢 复 >>><hr size=1 width=70% align="left"></td></tr>
<tr><td>
<ul><li> 选择一个留言备份 <select size="1" id=DelIndicatedType>
<option selected value="_SAFE">安全模式(推荐)</option>
<option value="_KILL">完全删除</option>
</select></li>
<li> 选择操作<br> <input type=radio name=r1> <label for>恢复留言备份,并与当前留言数据合并(保留最新的数据)</label><br>
<input type=radio name=r1> <label for>仅恢复留言备份,不与当前留言数据合并(删除当前留言)</label><br>
<input type=radio name=r1> <label for>仅删除该留言备份</label>
</ul><br>
<p align="right"><input class=button type=submit value="执行操作" onClick="if(msgCount){ return doDelIndicated() }else{alert('没有留言数据,不必删除!'); return false}">
</td></tr>
<tr><td valign=top><hr size=1 align="left"><b>使用说明:</b>
<ol>
<li>批量删除操作是不可恢复的,在此之前请做好备份。</li>
<li>当您删除所有留言(清空留言数据)时,推荐使用“安全模式”:所有数据将被保存到一个备份文件夹中,建议随后使用 Ftp 手动删除。</li>
</ol>
<p> </td></tr>
</table>
<script>
var oForm = document.forms[0];
var msgCount = <?=$msgCount ?>;
function doConfirm(msg){
var retval = confirm("你选择了:\n“" + msg + "”\n\n该项操作不可恢复,确定继续进行吗?");
return retval;
}
function checkInput() {
if (event.shiftKey || event.ctrlKey || event.altKey) {
event.returnValue=false;
}else if (event.keyCode >= 48 && event.keyCode <= 57) {
event.returnValue=true;
} else if (event.keyCode >= 35 && event.keyCode <= 40 || event.keyCode == 8 || event.keyCode == 46 || event.keyCode == 9) {
event.returnValue=true;
} else
event.returnValue=false;
}
function selectVal(el, isvalue){
var retval;
var oSelect = document.getElementById(el) ;
if(isvalue)
retval = oSelect.options[oSelect.selectedIndex].value;
else
retval = oSelect.options[oSelect.selectedIndex].text;
return retval;
}
function doDelDate(){
var s0 = Date.UTC(oForm.dateBeginYear.value, selectVal("dateBeginMonth")-1, selectVal("dateBeginDay"), 0)/1000;
var s1 = Date.UTC(oForm.dateCloseYear.value, selectVal("dateCloseMonth")-1, selectVal("dateCloseDay"), 24)/1000;
if(s0>s1){
alert("输入的起始日期不能小于截止日期。");
oForm.dateBeginYear.focus();
return false;
}
if(doConfirm ("删除指定时间内的所有留言")){
oForm.submitVal.value = s0 + "," + s1;
oForm.submit.value = "DEL_DATE";
oForm.submit();
}else
return false;
}
function doDelOrder(){
var v = oForm.delOrder_val.value;
if(doConfirm ("删除 "+selectVal('delOrder')+" 的 " + v + " 条留言")){
oForm.submitVal.value = v;
oForm.submit.value = "DEL_ORDER" + selectVal('delOrder', 1);
oForm.submit();
}else
return false;
}
function doDelIndicated(){
var oRadio = oForm.DelIndicated;
var radioUnchecked = true;
for(var i=0; i<oRadio.length; i++){
if(oRadio[i].checked==true) {
radioUnchecked = false;
if(oRadio[i].value=="DEL_ALL"){
if(doConfirm (oRadio[i].title)){
oForm.submit.value = oRadio[i].value + oForm.DelIndicatedType.value
oForm.submitVal.value = "";
oForm.submit();
}
return false;
/* }else if(oRadio[i].value=="DEL_MID"){
if(doConfirm (oRadio[i].title)){
oForm.submit.value = oRadio[i].value;
oForm.submitVal.value = oForm.delMID_val.value;
oForm.submit();
}
return false;
}else if(oRadio[i].value=="DEL_IDX"){
if(doConfirm (oRadio[i].title)){
oForm.submit.value = oRadio[i].value;
oForm.submitVal.value = oForm.delIDX_val.value;
oForm.submit();
}
return false;
*/ }
break;
}
}
if(radioUnchecked){
alert("请选择指定的操作!");
}
return false;
}
</script>
<?
SetupLine();
}
// 以上为主模块,斑竹使用
}else{
ShowMsg('您不是斑竹,或者登陆超时,无法进行此项操作!',MSG_FAIL);
}
function killfile($mid){
$fname = DATA_PATH.$mid.".php";
if(file_exists($fname)){
if( @unlike($fname) ) return true;
else return false;
}else{
return false;
}
}
function newlist(){
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -