📄 quickdel.php
字号:
<?php
/**********************************************************************
Dream Fly GuestBook 3.2 for Text (v20050206)
程序设计:浪 者
版权所有:(C)1999-2005 酷虫工作室
演 示:http://xpower.jsphome.com
*************************************************************************/
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);
JumpUrl('index.php?MOD=quickdel');
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);
JumpUrl('index.php?MOD=quickdel');
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);
JumpUrl('index.php?MOD=quickdel');
break;
case 'DEL_ALL_SAFE' :
// 移动 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);
JumpUrl('index.php?MOD=quickdel');
break;
case 'DEL_ALL_KILL' :
foreach (glob(DATA_PATH."*.php") as $filename) {
@unlink($filename);
}
writetofile( DATA_LIST_FILE, "<? die() ?>\n" );
ShowMsg('您已经成功的删除了所有留言记录!您还想作些什么呢?',MSG_OK, $act);
JumpUrl('index.php?MOD=quickdel');
break;
case 'DEL_MID' :
//break;
case 'DEL_IDX' :
//break;
default:
ShowMsg('非法操作!参数设置错误。');
JumpUrl(-1);
}
}else{
SetupBar('批量删除');
if( $msgCount ){
$msgTime[0] = date('Y 年 m 月 d 日', trim(min($ListDatas)) );
$msgTime[1] = date('Y 年 m 月 d 日', trim(max($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>留言顺序:
<select size="1" id=delOrder>
<option value='_NEW'>最新留言</option>
<option value='_OLD'>最旧留言</option>
</select></li>
<li><label for=delOrder_val>留言数量:</label> <input id=delOrder_val type="text" class=text size="8" value="1" maxlength="2" onKeydown="checkInput()" onChange="if(!(this.value>0 && this.value<100)) {alert('请输入 1-99 条的留言数量。');this.focus();this.select();return false}"></li>
</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>留言时间: <b><?=$msg ?></b></li>
<li>起始时间:
<input type="text" class=text size=6 id=dateBeginYear value=2004 maxlength=4 onKeydown="checkInput()" onblur="if(!(this.value>=1990 && this.value<=3000)) {alert('输入年份错误!请输入正确的 4 位年份。');this.focus();return false}"> 年
<select size="1" id=dateBeginMonth>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
<option>11</option>
<option>12</option>
</select> 月
<select size="1" id=dateBeginDay>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
<option>11</option>
<option>12</option>
<option>13</option>
<option>14</option>
<option>15</option>
<option>16</option>
<option>17</option>
<option>18</option>
<option>19</option>
<option>20</option>
<option>21</option>
<option>22</option>
<option>23</option>
<option>24</option>
<option>25</option>
<option>26</option>
<option>27</option>
<option>28</option>
<option>29</option>
<option>30</option>
<option>31</option>
</select> 日</li>
<li>截止时间:
<input type="text" class=text size=6 id=dateCloseYear value=2004 maxlength=4 onKeydown="checkInput()" onChange="if(!(this.value>=1990 && this.value<=3000)) {alert('输入年份错误!请输入正确的 4 位年份。');this.focus();this.select();return false}"> 年
<select size="1" id=dateCloseMonth>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
<option>11</option>
<option>12</option>
</select> 月 <select size="1" id=dateCloseDay>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
<option>11</option>
<option>12</option>
<option>13</option>
<option>14</option>
<option>15</option>
<option>16</option>
<option>17</option>
<option>18</option>
<option>19</option>
<option>20</option>
<option>21</option>
<option>22</option>
<option>23</option>
<option>24</option>
<option>25</option>
<option>26</option>
<option>27</option>
<option>28</option>
<option>29</option>
<option>30</option>
<option>31</option>
</select> 日</li>
</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>选择特定操作:<br>
<input type="radio" value="V8" name="DelIndicated" id=del3_r1 disabled> <label for=del3_r1 disabled>删除所有未回复的留言</label><br>
<input type="radio" value="V9" name="DelIndicated" id=del3_r2 disabled> <label for=del3_r2 disabled>删除所有已经回复的留言</label><br>
<input type="radio" value="V1" name="DelIndicated" id=del3_r3 disabled> <label for=del3_r3 disabled>留言人姓名:</label><input type="text" class=text name="T2" size="16" value="(无效)" maxlength="2" disabled><font disabled>(多个姓名用逗号分隔)</font><br>
<!--
<input type="radio" value="DEL_IDX" name="DelIndicated" id=delIDX title="删除为指定流水号的所有留言"> <label for=delIDX>留言流水号:</label><input type="text" class=text id=delIDX_val size="16" value="1">(即从 1 开始的第几条留言,多个用逗号分隔)<br>
<input type="radio" value="DEL_MID" name="DelIndicated" id=delMID title="删除为指定 ID 值的所有留言"> <label for=delMID>留言 ID 号:</label><input type="text" class=text id=delMID_val size="16" value="">(多个 ID 用逗号分隔)<br>
-->
<input type="radio" value="DEL_ALL" name="DelIndicated" id=delALL title="删除当前所有留言" checked> <label for=delALL>删除当前所有留言</label>
<select size="1" id=DelIndicatedType>
<option selected value="_SAFE">安全模式(推荐)</option>
<option value="_KILL">完全删除</option>
</select></li>
</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);
JumpUrl('index.php?MOD=login');
}
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 + -