📄 admin1.asp
字号:
Do while not Rs.eof
Response.Write"<tr bgcolor=""#DEDEDE""><td align='center'>"&YxBBs.Fun.IpDecode(Rs("StartIp"))&" - "&YxBBs.Fun.IpDecode(Rs("EndIp"))&"</td><td> "&Rs("Readme")&"</td><td align='center'><a href=?Action=SaveLock&ID="&Rs("ID")&"><img src=../images/lock.GIF border=0 align='absmiddle'> 封锁</a> <a href=?Action=DelIp&ID="&Rs("ID")&"><img src=../images/del.gif border='0' align='absmiddle'> 删除</td></tr>"
Rs.MoveNext
Loop
End If
Rs.Close
%>
</table>
<%
End Sub
Sub EditIp
Set Rs=YxBBs.execute("Select StartIp,EndIp,Readme,ID From[YX_LockIp] where ID="&ID&"")
IF Rs.eof Then
Call GoBack("","记录不存在"):Exit Sub
End If
%>
<form method=POST name=form style='margin:0' action=?Action=SaveEditip>
<table width="98%" border="0" align="center" cellpadding="4" cellspacing="1" bgcolor="#FFFFFF">
<tr bgcolor="#CCCCCC"><td height="25" colspan="2"><b><font color="#FFFFFF">IP封锁</font></b></td>
</tr>
<tr bgcolor="#DEDEDE"><td width="20%" height="25">起始IP:<br>
(必填)</td><td width="80%"><input name="id" value="<%=Rs("ID")%>" type="hidden"><input name='StartIp' type='text' value="<%=YxBBs.Fun.IpDecode(Rs("StartIp"))%>"></td></tr>
<tr bgcolor="#DEDEDE"><td height="25">结束IP:<br>
(封锁单个IP时不必填写)</td><td><input name='EndIp' type='text' value="<%=YxBBs.Fun.IpDecode(Rs("EndIp"))%>"></td></tr>
<tr bgcolor="#DEDEDE"><td height="25">封禁说明:<br>
(最大255个字符)</td><td><input name='Readme' type='text' style="width:90%" value="<%=Rs("Readme")%>"></td></tr>
<tr bgcolor="#CCCCCC"><td colspan="2" align="center"><input type="submit" value=" 提 交 "> <input type="reset" value=" 重 置 "></td></tr></table>
</form>
<%
Rs.Close
End Sub
Sub DelIp
Dim ID
ID=Int(Request("ID"))
YxBBs.Execute("Delete From[YX_LockIP] Where ID="&ID&"")
Cache.Name="IPData"
Cache.clean()
Response.redirect "?Action=LockIp"
End Sub
Sub SaveAddip
Dim StartIP,EndIP,Readme
StartIp=YxBBs.Fun.GetStr("StartIp")
EndIp=YxBBs.Fun.GetStr("EndIp")
Readme=YxBBs.Fun.GetStr("Readme")
If StartIp="" Then
Call GoBack("","")
Exit Sub
End If
if EndIp="" then EndIp=StartIp
YxBBs.execute("Insert into [YX_LockIp](StartIp,EndIp,Readme,lock)values("&YxBBs.Fun.IpEncode(StartIp)&","&YxBBs.Fun.IpEncode(EndIp)&",'"&Readme&"',true)")
Call Suc("操作成功","成功添加封锁IP纪录!","?Action=LockIp")
Cache.Name="IPData"
Cache.clean()
End Sub
Sub SaveEditip
Dim ID,StartIP,EndIP,Readme
ID=YxBBs.Fun.GetStr("ID")
StartIp=YxBBs.Fun.GetStr("StartIp")
EndIp=YxBBs.Fun.GetStr("EndIp")
Readme=YxBBs.Fun.GetStr("Readme")
If StartIp="" Then
Call GoBack("",""):Exit Sub
End If
If EndIp="" then EndIp=StartIp
YxBBs.execute("update [YX_LockIp]Set StartIp="&YxBBs.Fun.IpEncode(StartIp)&",EndIp="&YxBBs.Fun.IpEncode(EndIp)&",Readme='"&Readme&"' where ID="&ID&"")
Call Suc("","修改封锁IP成功!","?Action=LockIp")
Cache.Name="IPData"
Cache.clean()
End Sub
Sub SaveLock
Dim ID,IsLock
ID=Int(Request("ID"))
IsLock=YxBBs.Execute("Select Lock From[YX_LockIp] where Id="&ID&"")(0)
If IsLock Then
YxBBs.Execute("update [YX_LockIp] set Lock=False where Id="&ID&"")
Else
YxBBs.Execute("update [YX_LockIp] set Lock=True where Id="&ID&"")
End IF
Cache.Name="IPData"
Cache.clean()
Response.redirect "?Action=LockIp"
End Sub
Sub ExecuteSql
Dim Sql,Caption,Content
Sql=Request.Form("sql")
Caption="执行SQL语句"
Content="<form onSubmit=checkclick('注意!操作不当有可能破坏数据库!\n\n您确定要执行SQL语句吗?') method=post style='margin:0'>指令:<input type=text name='sql' value='"&Sql&"' style='width:90%'><br>注意:此操作不可恢复,如果对SQL语法不了解,请慎用!<input type=submit value=' 确定执行 '></Form>"
Call ShowTable(Caption,Content)
If Sql<>"" then
Response.Write("<br>")
On Error Resume Next
YxBBs.Execute(Sql)
If err.number=0 then
Caption="执行成功":Content="<li>Sql语句正确,已经成功的执行了下面这条语句!<li><font color=red>"&Sql&"</font>"
Else
Caption="错误信息":Content="<li>不能执行,语句有问题,具体出错如下:<li>"&Err.Description&"<br>"
Err.clear
End if
Call ShowTable(Caption,Content)
End if
End Sub
Sub CompressData()
Dim DbPath,boolIs97,Caption,Content
Caption="压缩数据库"
Content="<b>注意:</b>输入数据库所在相对路径,并且输入数据库名称(如果正在使用中数据库不能压缩,请选择备份数据库进行压缩操作)<hr size=1>"&_
"<form style='margin:0' method='post'>压缩数据库:<input type='text' name='DbPath' value='请输入数据库路径'> <input type='submit' value='开始压缩'><br><form>"&_
"<input type='checkbox' name='boolIs97' value='True'>如果使用 Access 97 数据库请选择(默认为 Access 2000 数据库)"
Call ShowTable(Caption,Content)
Response.flush
DbPath = Request("DbPath")
boolIs97 = Request("boolIs97")
If DbPath <> "" Then
If Session(YxBBs.CacheName&"fso")="no" Then
Call GoBack("","空间不支持FSO文件读写。无法进入下一步。")
Exit Sub
End If
DbPath = server.mappath(DbPath)
Content=CompactDB(DbPath,boolIs97)
Call ShowTable(Caption,Content)
End If
End sub
Function CompactDB(DbPath, boolIs97)
Dim fso,Engine,strDbPath,JET_3X,Content
strDbPath = left(DbPath,instrrev(DbPath,"\"))
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(DbPath) Then
fso.CopyFile DbPath,strDbPath & "temp.mdb"
Set Engine = CreateObject("JRO.JetEngine")
If boolIs97 = "True" Then
Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDbPath & "temp.mdb", _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDbPath & "temp1.mdb;" _
& "Jet OLEDB:Engine Type=" & JET_3X
Else
Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDbPath & "temp.mdb", _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDbPath & "temp1.mdb"
End If
fso.CopyFile strDbPath & "temp1.mdb",DbPath
fso.DeleteFile(strDbPath & "temp.mdb")
fso.DeleteFile(strDbPath & "temp1.mdb")
Set fso = nothing
Set Engine = nothing
CompactDB = "<li>你的数据库 " & DbPath & ",已经压缩成功!"
Else
CompactDB = "<li>数据库名称或路径不正确! 请重试!"
End If
End Function
Sub BackupDate()
Dim Caption,Content
Caption="备份论坛数据"
Content="<b>注意事项:</b><br>论坛数据库备份几乎是站长每天必做的事!<br>为保证您的数据安全,备份时请不要用默认名称来命名备份数据库。<br>发现数据丢失的时候,就可以用你最后备份的数据库恢复。<br>注意:所有路径都是相对与程序空间根目录的相对路径<hr size=1>"&_
"<form style='margin:0' method='post' action='?Action=BackupDate&Go=Start'>当前数据库路径(相对路径):<input type=text size=15 name=DbPath value='请输入数据库路径'><br>"&_
"备份数据库目录(相对路径):<input type=text size='15' name='BkFolder' value='DataBak'> 如目录不存在,程序将自动创建<BR>"&_
"备份数据库名称(填写名称):<input type=text size=15 name=BkDbName value='"&formatdatetime(Now(),2)&".Asp'> 如备份目录有该文件,将覆盖,如没有,将自动创建<BR>"&_
"<input type=submit value=' 开始备份 '></form>"
Call ShowTable(Caption,Content)
If Request("Go")="Start" then
If Session(YxBBs.CacheName&"fso")="no" Then
Call GoBack("","空间不支持FSO文件读写。无法进入下一步。")
Exit Sub
End If
Dim fso,DbPath,BkFolder,BkDbName
DbPath=YxBBs.Fun.GetStr("DbPath")
DbPath=server.mappath(DbPath)
BkFolder=YxBBs.Fun.GetStr("BkFolder")
BkDbName=YxBBs.Fun.GetStr("BkDbName")
Set Fso=server.createobject("scripting.filesystemobject")
if fso.fileexists(DbPath) then
If CheckDir(BkFolder) = True Then
fso.copyfile DbPath,BkFolder& "\"& BkDbName
else
MakeNewsDir BkFolder
fso.copyfile DbPath,BkFolder& "\"& BkDbName
end if
Caption="备份成功":Content="备份数据库成功!您备份的数据库路径为 " &BkFolder& "\"& BkDbName
Else
Caption="错误信息":Content="找不到您所需要备份的文件。"
End if
Call ShowTable(Caption,Content)
End if
End sub
'检测目录是否存在
Function CheckDir(FolderPath)
Dim Fso1
Folderpath=Server.MapPath(".")&"\"&folderpath
Set fso1 = CreateObject("Scripting.FileSystemObject")
If fso1.FolderExists(FolderPath) then
'存在
CheckDir = True
Else
'不存在
CheckDir = False
End if
Set fso1 = nothing
End Function
'建立目录
Function MakeNewsDir(foldername)
Dim fso1
dim f
Set fso1 = CreateObject("Scripting.FileSystemObject")
Set f = fso1.CreateFolder(foldername)
MakeNewsDir = True
Set fso1 = nothing
End Function
Sub RestoreData()
Dim Caption,Content
Caption="恢复论坛数据"
Content="<b>注意事项:</b>恢复数据库 一般是用来恢复(数据丢失或被破坏)的当前使用数据库。<br>是用备份的数据库直接把当前使用的数据库直接覆盖,请注意!<br>下面的路径都是相对与程序空间根目录的相对路径。<hr size=1>"&_
"<form method='post' style='margin:0' action='?Action=RestoreData&Go=Start'>备份数据库(相对路径):<input type='text' size='30' name='BackPath' value='DataBak/"&formatdatetime(Now(),2)&".Asp'> 请填写用来恢复的备份文件<BR>"&_
"当前数据库(相对路径):<input type='text' size='30' name='DbPath' value='请输入数据库路径'> 填写您当前使用的数据库<BR><input onclick=checkclick('您确定要用备份的数据库覆盖当然使用的数据库吗!?') type=submit value=' 恢复数据 '></form> "
Call ShowTable(Caption,Content)
If Request("Go")="Start" then
If Session(YxBBs.CacheName&"fso")="no" Then
Call GoBack("","空间不支持FSO文件读写。无法进入下一步。")
Exit Sub
End If
Caption="错误信息"
Dim FSO,Dbpath,BackPath
DbPath=YxBBs.Fun.GetStr("DbPath")
BackPath=YxBBs.Fun.GetStr("BackPath")
if BackPath="" or DbPath="" then
Content="请把全名填写完整!"
'ElseIF Lcase(Dbpath)<>Lcase(Db) Then
'Content="您输入的不是当前使用数据库全名!"
Else
DbPath=server.mappath(DbPath)
BackPath=server.mappath(BackPath)
Set Fso=server.createobject("scripting.filesystemobject")
if fso.fileexists(DbPath) then
On Error Resume Next
fso.copyfile BackPath,DbPath
If err.number=0 then
Caption="恢复成功":Content="成功的恢复数据库!"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -