⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 admin1.asp

📁 YxBBs是由Y网出品的一套ASP论坛系统,拥有小巧、高速、简捷、易用等特点。在YxBBs1.X刚起步的时候经过了大量的版本测试,现在YxBBs完善了技术
💻 ASP
📖 第 1 页 / 共 2 页
字号:
	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='请输入数据库路径'>&nbsp;<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'>&nbsp;如目录不存在,程序将自动创建<BR>"&_
	"备份数据库名称(填写名称):<input type=text size=15 name=BkDbName value='"&formatdatetime(Now(),2)&".Asp'>&nbsp;如备份目录有该文件,将覆盖,如没有,将自动创建<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=" 提 交 ">&nbsp;&nbsp;<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=" 提 交 ">&nbsp;&nbsp;<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 + -