📄 admin1.asp
字号:
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,fso,DbPath1,BkFolder,BkDbName,Dbpath2,BackPath
Caption="压缩数据库"
Content="<b>注意:</b>输入数据库所在相对路径,并且输入数据库名称(如果正在使用中数据库不能压缩,请选择备份数据库进行压缩操作)<hr size=1>"&_
"<form style='margin:0' method='post'action='?Action=CompressData&Go=Start'>压缩数据库:<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)
If Request("Go")="Start" then
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 If
Caption="备份论坛数据"
Content="<b>注意:</b>为保证您的数据安全,备份时请不要用默认名称来命名备份数据库。<hr size=1>"&_
"<form style='margin:0' method='post' action='?Action=CompressData&Go=Start1'>当前数据库路径(相对路径):<input type=text size=15 name=DbPath1 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")="Start1" then
If Session(YxBBs.CacheName&"fso")="no" Then
Call GoBack("","空间不支持FSO,无法使用此功能!")
Exit Sub
End If
DbPath1=YxBBs.Fun.GetStr("DbPath1")
DbPath1=server.mappath(DbPath1)
BkFolder=YxBBs.Fun.GetStr("BkFolder")
BkDbName=YxBBs.Fun.GetStr("BkDbName")
Set Fso=server.createobject("scripting.filesystemobject")
if fso.fileexists(DbPath1) then
If CheckDir(BkFolder) = True Then
fso.copyfile DbPath1,BkFolder& "\"& BkDbName
else
MakeNewsDir BkFolder
fso.copyfile DbPath1,BkFolder& "\"& BkDbName
end if
Caption="备份成功":Content="备份数据库成功!您备份的数据库路径为 " &BkFolder& "\"& BkDbName
Else
Caption="错误信息":Content="找不到您所需要备份的文件。"
End if
Call ShowTable(Caption,Content)
End if
Caption="恢复论坛数据"
Content="<b>注意:</b>恢复数据库 一般是用来恢复(数据丢失或被破坏)的当前使用数据库。<hr size=1>"&_
"<form method='post' style='margin:0' action='?Action=CompressData&Go=Start2'>备份数据库(相对路径):<input type='text' size='30' name='BackPath' value='DataBak/"&formatdatetime(Now(),2)&".Asp'> 请填写用来恢复的备份文件<BR>"&_
"当前数据库(相对路径):<input type='text' size='30' name='DbPath2' 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="错误信息"
DbPath2=YxBBs.Fun.GetStr("DbPath2")
BackPath=YxBBs.Fun.GetStr("BackPath")
if BackPath="" or DbPath2="" then
Content="请把全名填写完整!"
Else
DbPath2=server.mappath(DbPath2)
BackPath2=server.mappath(BackPath2)
Set Fso=server.createobject("scripting.filesystemobject")
if fso.fileexists(DbPath2) then
On Error Resume Next
fso.copyfile BackPath,DbPath2
If err.number=0 then
Caption="恢复成功":Content="成功的恢复数据库!"
Else
Caption="错误信息":Content="不是当前使用的数据库全名"
Err.clear
End If
else
Content= "备份目录下并无您的备份文件!"
end if
End IF
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
'检测目录是否存在
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 SqlTable
Dim AllTable,i
%>
<table width="98%" border="0" align="center" cellpadding="4" cellspacing="1" bgcolor="#FFFFFF">
<tr><th height="25" colspan="4">数据表管理</td>
</tr>
<tr><td height="25" colspan="4" bgcolor="#DEDEDE"><b>说明:</b><br>
默认选中的为当前论坛所使用来保存帖子数据的表,<br>删除数据表将同时全部删除该数据表的所有帖子,请注意!!!<br>
一般帖子数量超过4万左右,请再添加一个数据表,这样您会发现论坛会快很多。</td></tr></tbody></table><br>
<form method=POST name=form style='margin:0' action=?Action=SaveAuteSqlTable>
<table width="98%" border="0" align="center" cellpadding="4" cellspacing="1" bgcolor="#FFFFFF">
<tr><th height="25" colspan="4">设置默认数据表</th>
</tr> <tr bgcolor="#DEDEDE"><td height="25"><b>数据表</b></td>
<td><b>帖数</b></td>
<td><b>默认</b></td>
<td><b>操作</b></td>
</tr>
<%AllTable=Split(YxBBs.BBSTable(0),",")
For i=0 To uBound(AllTable)
Response.Write"<tr bgcolor=""#DEDEDE""><td height='25'>YX_Bbs"&AllTable(i)&"</td><td>"&YxBBs.execute("Select Count(BBSID) From[YX_bbs"&AllTable(i)&"]")(0)&"</td><td><input name='Aute' type='radio' value='"&AllTable(i)&"'"
If YxBBs.BBSTable(1)=AllTable(i) Then
Response.Write" checked></td><td><a onclick=alert('该数据表为默认数据表,不能删除默认的数据表!') href='#'>"
Else
Response.Write"></td><td><a onclick=checkclick('注意!删除将包括数据表的所有帖子!\n\n删除后将不能恢复!您确定要删除吗?') href='?Action=DelSqlTable&ID="&AllTable(i)&"'>"
End If
Response.Write"<img src='../images/del.gif' width='15' height='15' border='0' align='absmiddle'> 删除</a></td></tr>"
Next
%>
<tr bgcolor="#CCCCCC"><td colspan="5" align="center"><input type="submit" value=" 提 交 "> <input type="reset" value=" 重 置 "></td></tr></table>
</form><br>
<form method=POST name=form style='margin:0' action=?Action=SaveAddSqlTable>
<table width="98%" border="0" align="center" cellpadding="4" cellspacing="1" bgcolor="#FFFFFF">
<tr bgcolor="#4D65A4"><th height="25">增加数据表</th>
</tr>
<tr><td height="35" colspan="4" bgcolor="#DEDEDE">新数据表名称:Yx_BBs
<input type="text" name="TableName" size="2" value="<%=int(uBound(AllTable)+2)%>" ONKEYPRESS='event.returnValue=(event.keyCode >= 48) && (event.keyCode <= 57);'> (只填写数字,不能和现有的数据表相同。)</td>
</tr>
<tr bgcolor="#4D65A4"><td align="center" bgcolor="#CCCCCC"><input type="submit" value=" 提 交 "> <input type="reset" value=" 重 置 "></td></tr></table>
</form>
<%
End Sub
Sub SaveAuteSqlTable
Dim Aute,Temp,AllTable,i
Aute=YxBBs.Fun.GetStr("Aute")
AllTable=Split(YxBBs.BBSTable(0),",")
Temp=""
For i=0 To uBound(AllTable)
If Aute=AllTable(i) Then Temp="yes"
Next
If Temp="" Then
Call Goback("系统出错","无效的数据表名称!"):Exit Sub
End If
IF Int(Aute)<>Int(YxBBs.BBSTable(1)) Then
Temp=YxBBs.BBSTable(0)&"|"&Int(Aute)
YxBBs.execute("Update [YX_Config] Set BbsTable='"&Temp&"' ")
End If
Cache.name="Config"
Cache.clean()
Call Suc("","更改论坛默认数据表成功!","?Action=SqlTable")
End Sub
Sub SaveAddSqlTable
Dim TableName,AllTable,I,Temp
TableName=YxBBs.Fun.GetStr("TableName")
If not YxBBs.Fun.isInteger(TableName) then
Call GoBack("","请用正整数的数字填写!")
Exit Sub
End If
If Int(TableName)=0 Then
Call GoBack("","数据表名不能为0")
Exit Sub
End If
AllTable=Split(YxBBs.BBSTable(0),",")
For i=0 To uBound(AllTable)
If Int(TableName)=Int(AllTable(i)) then
Call GoBack("","数据表名已经存在!")
Exit Sub
End if
Next
Temp=YxBBs.BBSTable(0)&","&TableName&"|"&YxBBs.BBSTable(1)
YxBBs.execute("update [YX_config] Set BbsTable='"&Temp&"'")
YxBBs.execute("CREATE TABLE [YX_bbs"&TableName&"](BbsID int IDENTITY (1, 1) NOT NULL CONSTRAINT PrimaryKey PRIMARY KEY,TopicID int default 0,ReplyTopicID int default 0,BoardID int default 0,Name varchar(20),Caption varchar(255),Content text,Face int Default 0,AddTime Datetime,LastTime datetime,IsDel bit,Buyer text,Ip varchar(40),UbbString varchar(255))")
YxBBs.execute("create index TopicID on [YX_bbs"&TableName&"] (TopicID)")
YxBBs.execute("create index BoardID on [YX_bbs"&TableName&"] (BoardID)")
YxBBs.execute("create index ReplyTopicID on [YX_bbs"&TableName&"] (ReplyTopicID)")
Cache.name="Config"
Cache.clean()
Call Suc("","成功的添加了 YX_Bbs"&TableName&" 数据表!","?Action=SqlTable")
End Sub
Sub DelSqlTable
Dim ID,Temp,AllTable,I
ID=Request.QueryString("ID")
If int(ID)=int(YxBBs.BBSTable(1)) Then
Call GoBack("","该表被设定为默认使用表,不能删除!")
Exit Sub
End if
AllTable=Split(YxBBs.BBSTable(0),",")
Temp=""
For i=0 To uBound(AllTable)
If int(ID)=Int(AllTable(i)) Then Temp="yes"
Next
If Temp="" Then
Call Goback("系统出错","无效的数据表名称!"):Exit Sub
End If
Temp=""
For i=0 To uBound(AllTable)
If Int(ID)<>int(AllTable(i)) then
Temp=Temp&AllTable(i)&","
End if
Next
Temp=Left(Temp,len(Temp)-1)
Temp=Temp&"|"&YxBBs.BBSTable(1)
YxBBs.execute("update [YX_Config] Set BbsTable='"&Temp&"'")
YxBBs.Execute("Drop table [YX_bbs"&ID&"]")
YxBBs.Execute("Delete*From [YX_Topic] where SqlTableID="&ID&"")
Cache.name="Config"
Cache.clean()
Call Suc("","成功的删除名称为 YX_Bbs"&ID&" 的数据表及该数据表的所有帖子!","?Action=SqlTable")
End Sub
%>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -