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

📄 savepost.asp

📁 品泡女人香XI8.NET文章管理系统的源码
💻 ASP
📖 第 1 页 / 共 4 页
字号:
				Select Case Action
				Case 5
				tourl="dispbbs.asp?boardid="&Dvbbs.boardid&"&id="&RootID
				PostRetrunName=template.Strings(15)
				Case 6
				tourl="dispbbs.asp?boardid="&Dvbbs.boardid&"&id="&RootID&"&star="&Star&"#"&Announceid
				PostRetrunName=template.Strings(16)
				Case 7
				tourl="dispbbs.asp?boardid="&Dvbbs.boardid&"&id="&RootID
				PostRetrunName=template.Strings(17)
				Case 8
				tourl="dispbbs.asp?boardid="&Dvbbs.boardid&"&id="&RootID&"&star="&Star&"#"&RootID
				PostRetrunName=template.Strings(18)
				End Select
			End If
		End Select
		returnurl="dispbbs.asp?boardid="&Dvbbs.boardid&"&id="&RootID
		TempStr = Replace(TempStr,"{$tourl}",tourl)
		TempStr = Replace(TempStr,"{$returnurl}",returnurl)
		TempStr = Replace(TempStr,"{$stats}",Dvbbs.Stats)
		TempStr = Replace(TempStr,"{$boardname}",Dvbbs.BoardType)
		TempStr = Replace(TempStr,"{$boardid}",Dvbbs.BoardID)
		TempStr = Replace(TempStr,"{$page}",page)
		TempStr = Replace(TempStr,"{$PostRetrunName}",PostRetrunName)
		Response.Write TempStr
	End Sub
	Private Function checktable(Table)
		Table=Right(Trim(Table),2)
		If Not IsNumeric(table) Then Table=Right(Trim(Table),1)
		If Not IsNumeric(table) Then Dvbbs.AddErrCode(30)
		checktable="Dv_bbs"&table
	End Function
	'检查提交来源
	Public Sub CheckfromScript()
		If Not Dvbbs.ChkPost() Or  Not(IsArray(Session(Dvbbs.CacheName & "UserID"))) Then Dvbbs.AddErrCode(42):Dvbbs.Showerr()
 		If CStr(Request.Cookies("Dvbbs"))=CStr(Dvbbs.Boardid) Then Dvbbs.AddErrCode(30):Dvbbs.Showerr()
 		If (Not ChkUserLogin) And (Action = 5 Or Action = 6 Or Action = 7) Then Dvbbs.AddErrCode(12):Dvbbs.Showerr()	
	End Sub
	'判断发贴时间间隔
	Private Sub  CheckpostTime()
		If Dvbbs.Board_Setting(30)="1"  Then
			Dim mypostinfo
			mypostinfo=Session(Dvbbs.CacheName & "UserID")
			If DateDiff("s",mypostinfo(2),Now())<CLng(Dvbbs.Board_Setting(31)) Then
				 Response.redirect "showerr.asp?ErrCodes=<Br>"+"<li>本论坛限制发贴距离时间为"&Dvbbs.Board_Setting(31)&"秒,请稍后再发。&action=OtherErr"
			End If
		End If
	End Sub 
	'检查用户身份
	Public Function ChkUserLogin()
 		ChkUserLogin=False
 		'取得发贴用户名和密码
		UserName=Dvbbs.Checkstr(Trim(Request.Form("username")))
		'校验用户名和密码是否合法
		'If UserName="" Or Dvbbs.strLength(userName)>Cint(Dvbbs.Forum_setting(41)) Or Dvbbs.strLength(userName) < Cint(Dvbbs.Forum_setting(40)) Then Dvbbs.AddErrCode(17)
		If UserName="" Then Dvbbs.AddErrCode(17)
		If Not IstrueName(UserName) Then Dvbbs.AddErrCode(18)
		Dvbbs.ShowErr()
		If Action = 8 Then
			'编辑贴子,检查用户身份
			UserPassWord=Dvbbs.checkStr(Trim(Request.Cookies(Dvbbs.Forum_sn)("password")))
			SQL = "Select JoinDate,UserID,UserPost,UserGroupID,userclass,lockuser,TruePassWord From [Dv_User] Where UserID="&Dvbbs.UserID
		Else
			'检查用户是否当前用户
			If UserName<>Dvbbs.MemberName Then
				Reuser=True
				UserPassWord=Dvbbs.Checkstr(Trim(Request.Form("passwd")))
				UserPassWord=md5(UserPassWord,16)
				SQL = "Select JoinDate,UserID,UserPost,UserGroupID,userclass,lockuser,userpassword From [Dv_User] Where UserName='"&UserName&"' "
			Else
				UserPassWord=Dvbbs.checkStr(Trim(Request.Cookies(Dvbbs.Forum_sn)("password")))
				SQL = "Select JoinDate,UserID,UserPost,UserGroupID,userclass,lockuser,TruePassWord From [Dv_User] Where UserID="&Dvbbs.UserID		
			End If
		End If
		If Len(UserPassWord)<>16 AND Len(UserPassWord)<>32 Then Dvbbs.AddErrCode(18)
 		Set Rs=Dvbbs.Execute(SQL)
 		If Not Rs.EOF Then
			If Not (UserPassWord<>rs(6) Or rs(5)=1 or rs(3)=5) Then
 				ChkUserLogin=True
 				Dvbbs.UserID=Rs(1)
 				UserPost=Rs(2)
 				GroupID=Rs(3)
 				userclass=Rs(4)
				Response.cookies("upNum")=0
 			Else
 				Dvbbs.EmptyCookies
 				Dvbbs.LetGuestSession()			
			End If
 		End If
 		Set Rs = Nothing
 	End Function
 	'更新用户积分,所需外部变量,UserPost,userid,(外加发贴回贴的积分设置数据)
	Public Sub updatepostuser()
		'投票,发贴,更新积分
		Dim cUserInfo
		cUserInfo = Session(Dvbbs.CacheName & "UserID")
		'更新最后发贴时间
		cUserInfo(2) = Now
		If Action = 5 Or Action = 7 Then 
			Dvbbs.Execute("update [Dv_user] set UserLastIP='"&Dvbbs.usertrueip&"',UserPost=UserPost+1,UserTopic=UserTopic+1,userWealth=userWealth+"&Clng(Dvbbs.Forum_user(1))&",userEP=userEP+"&Clng(Dvbbs.Forum_user(6))&",userCP=userCP+"&Clng(Dvbbs.Forum_user(11))&",UserToday='"&Clng(Dvbbs.UserToday(0))+1&"|"&Clng(Dvbbs.UserToday(1))&"|"&Clng(Dvbbs.UserToday(2))&"' Where UserID="&Dvbbs.userID&"")
			If Not Reuser Then
				UserPost=UserPost+1
				cUserInfo(21)=cUserInfo(21)+Clng(Dvbbs.Forum_user(1))
				cUserInfo(22)=cUserInfo(22)+Clng(Dvbbs.Forum_user(6))
				cUserInfo(23)=cUserInfo(23)+Clng(Dvbbs.Forum_user(11))
			End If
		ElseIf Action = 6 Then '回贴更新积分。
			If Not Reuser Then 
				Dvbbs.Execute("update [Dv_user] set UserLastIP='"&Dvbbs.usertrueip&"',UserPost=UserPost+1,userWealth=userWealth+"&Clng(Dvbbs.Forum_user(2))&",userEP=userEP+"&Clng(Dvbbs.Forum_user(7))&",userCP=userCP+"&Clng(Dvbbs.Forum_user(12))&",UserToday='"&Clng(Dvbbs.UserToday(0))+1&"|"&Clng(Dvbbs.UserToday(1))&"|"&Clng(Dvbbs.UserToday(2))&"' Where UserID="&Dvbbs.userID&"")
				UserPost=UserPost+1
				cUserInfo(21)=cUserInfo(21)+Clng(Dvbbs.Forum_user(2))
				cUserInfo(22)=cUserInfo(22)+Clng(Dvbbs.Forum_user(7))
				cUserInfo(23)=cUserInfo(23)+Clng(Dvbbs.Forum_user(12))
			Else
				Dvbbs.Execute("update [Dv_user] set UserLastIP='"&Dvbbs.usertrueip&"',UserPost=UserPost+1,userWealth=userWealth+"&Clng(Dvbbs.Forum_user(2))&",userEP=userEP+"&Clng(Dvbbs.Forum_user(7))&",userCP=userCP+"&Clng(Dvbbs.Forum_user(12))&" Where UserID="&Dvbbs.userID&"")
			End If
		End If
		If Not Reuser Then 
			cUserInfo(8)=UserPost+1
			cUserInfo(36)=Clng(Dvbbs.UserToday(0))+1 & "|" & Clng(Dvbbs.UserToday(1)) & "|" & Clng(Dvbbs.UserToday(2))
		End If
		Session(Dvbbs.CacheName & "UserID") = cUserInfo
		'发贴数字能整除十则更新用户等级。(Updategrade())
		If UserPost mod 10 < 1  Then Updategrade()
	End Sub
	'更新用户等级,所需外部变量,UserPost,GroupID,userid
	Public Sub Updategrade()
		Dim titlepic
		Dim cUserInfo,GroupID_Q
		If Not Reuser Then  cUserInfo = Session(Dvbbs.CacheName & "UserID")
		'检查用户等级数据表中是否有匹配行
		Set Rs=Dvbbs.Execute("select MinArticle,IsSetting,ParentGID from Dv_UserGroups where usertitle='"&userclass&"'")
		If Rs.Eof Or Rs.BOF Then
			Set Rs=Nothing:Set Rs=Dvbbs.Execute("select top 1 usertitle,GroupPic,UserGroupID,IsSetting,ParentGID from Dv_UserGroups where (ParentGID="&GroupID&" Or UserGroupID="&GroupID&") and Minarticle<="&UserPost&" and not Minarticle=-1 order by MinArticle desc")
			If Not(Rs.EOF And Rs.BOF) Then 
				userclass=Rs(0)
				titlepic=Rs(1)
				If Rs(3)=1 Then
					GroupID=Rs(2)
				Else
					GroupID=Rs(4)
				End If
				Set RS=Nothing 
			Else
				Set Rs=Dvbbs.Execute("select top 1 usertitle,GroupPic,UserGroupID,IsSetting,ParentGID from Dv_UserGroups where UserGroupID="&GroupID&" and Minarticle=-1 order by UserGroupID")
				If Not(Rs.EOF And Rs.BOF) Then 
					userclass=Rs(0)
					titlepic=Rs(1)
					If Rs(3)=1 Then
						GroupID=Rs(2)
					Else
						GroupID=Rs(4)
					End If
					Set RS=Nothing 
				Else
					Set RS=Nothing:Set Rs=Dvbbs.Execute("select top 1 GroupPic from Dv_UserGroups where ParentGID>0 And not Minarticle=-1 order by MinArticle")
					titlepic=Rs(0)
					Set RS=Dvbbs.Execute("select usertitle from Dv_UserGroups where UserGroupID="&GroupID)
					userclass=Rs(0)
				End If
			End If
		Else	
			If Rs(0)>-1 Then
				'如果为自定义等级,则取其父类GroupID做升级依据
				GroupID_Q=GroupID
				If Rs(1)=1 And Rs(2)>0 Then GroupID_Q=Rs(2)
				Set Rs=Nothing:Set Rs=Dvbbs.Execute("select top 1 usertitle,GroupPic,UserGroupID,IsSetting,ParentGID from Dv_UserGroups where ParentGID="&GroupID_Q&" and Minarticle<="&UserPost&" and not MinArticle=-1 order by MinArticle desc,UserGroupID")
				If Not (Rs.EOF And Rs.BOF) Then 
					userclass=Rs(0)
					titlepic=Rs(1)
					If Rs(3)=1 Then
						GroupID=Rs(2)
					Else
						GroupID=Rs(4)
					End If
					Set Rs=Nothing 
				Else
					Set Rs=Nothing
					Set Rs=Dvbbs.Execute("select top 1 GroupPic from Dv_UserGroups where ParentGID>0 And not Minarticle=-1 order by MinArticle")
					titlepic=Rs(0)
					Set Rs=Nothing
					Set Rs=Dvbbs.Execute("select usertitle from Dv_UserGroups where UserGroupID="&GroupID)
					userclass=Rs(0)
					Set Rs=Nothing 
				End If
			Else
				Set Rs=Dvbbs.Execute("select usertitle,GroupPic,UserGroupID,IsSetting,ParentGID from Dv_UserGroups where usertitle='"&userclass&"'")
				If Not (Rs.EOF And Rs.BOF) Then 
					userclass=Rs(0)
					titlepic=Rs(1)
					If Rs(3)=1 Then
						GroupID=Rs(2)
					Else
						GroupID=Rs(4)
					End If
				End If
				Set Rs=Nothing 
			End If
		End If
		Dvbbs.Execute("update [Dv_User] set userclass='"&userclass&"',titlepic='"&titlepic&"',UserGroupID="&GroupID&" where userid="&dvbbs.UserID)
		If Not Reuser Then 
			cUserInfo(18)=userclass
			cUserInfo(19)=GroupID
			Session(Dvbbs.CacheName & "UserID") = cUserInfo
		End If
	End Sub
End Class

'截取指定字符
Function cutStr(str,strlen)
	'去掉所有HTML标记
	Dim re
	Set re=new RegExp
	re.IgnoreCase =True
	re.Global=True
	re.Pattern="<(.[^>]*)>"
	str=re.Replace(str,"")	
	set re=Nothing
	Dim l,t,c,i
	l=Len(str)
	t=0
	For i=1 to l
		c=Abs(Asc(Mid(str,i,1)))
		If c>255 Then
			t=t+2
		Else
			t=t+1
		End If
		If t>=strlen Then
			cutStr=left(str,i)&"..."
			Exit For
		Else
			cutStr=str
		End If
	Next
	cutStr=Replace(cutStr,chr(10),"")
	cutStr=Replace(cutStr,chr(13),"")
End Function
'过滤不必要UBB
Function reUBBCode(strContent)
	Dim re
	Set re=new RegExp
	re.IgnoreCase =True
	re.Global=True
	strContent=Replace(strContent,"&nbsp;"," ")
	re.Pattern="(\[QUOTE\])(.|\n)*(\[\/QUOTE\])"
	strContent=re.Replace(strContent,"")
	re.Pattern="(\[point=*([0-9]*)\])(.|\n)*(\[\/point\])"
	strContent=re.Replace(strContent,"&nbsp;")
	re.Pattern="(\[post=*([0-9]*)\])(.|\n)*(\[\/post\])"
	strContent=re.Replace(strContent,"&nbsp;")
	re.Pattern="(\[power=*([0-9]*)\])(.|\n)*(\[\/power\])"
	strContent=re.Replace(strContent,"&nbsp;")
	re.Pattern="(\[usercp=*([0-9]*)\])(.|\n)*(\[\/usercp\])"
	strContent=re.Replace(strContent,"&nbsp;")
	re.Pattern="(\[money=*([0-9]*)\])(.|\n)*(\[\/money\])"
	strContent=re.Replace(strContent,"&nbsp;")
	re.Pattern="(\[replyview\])(.|\n)*(\[\/replyview\])"
	strContent=re.Replace(strContent,"&nbsp;")
	re.Pattern="(\[usemoney=*([0-9]*)\])(.|\n)*(\[\/usemoney\])"
	strContent=re.Replace(strContent,"&nbsp;")
	strContent=Replace(strContent,"<I></I>","")
	set re=Nothing
	reUBBCode=strContent
End Function

'通用函数
Function IstrueName(uName)
	IstrueName=False
	If InStr(uName,"=")>0 Then Exit Function
	If InStr(uName,"%")>0 Then Exit Function 
	If InStr(uName,Chr(32))>0 Then Exit Function 
	If InStr(uName,"?")>0 Then Exit Function 
	If InStr(uName,"&")>0 Then Exit Function 
	If InStr(uName,";")>0 Then Exit Function 
	If InStr(uName,",")>0 Then Exit Function 
	If InStr(uName,"'")>0 Then Exit Function 
	If InStr(uName,Chr(34))>0 Then Exit Function 
	If InStr(uName,chr(9))>0 Then Exit Function 
	If InStr(uName,"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -