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

📄 showmessage.asp

📁 很好的一个论坛原代码
💻 ASP
字号:
<!--#INCLUDE FILE="inc/db_inc.asp"-->
<!--#INCLUDE FILE="inc/char_inc.asp"-->
<!--#INCLUDE FILE="inc/xbcode_inc.asp"-->
<!--#INCLUDE FILE="header.asp"-->
<%
dim ip, strip, killip
dim StrSql, toptext, rs, rs2, StrHtml, StrHtml2, error, err

StrHtml = loadtemplate("htmltop")
StrHtml = Replace(StrHtml, "{pagetitle}", loadtemplate("messagetitle"))
StrHtml = Replace(StrHtml, "{forumtitle}", boardtitle)
response.write StrHtml
StrHtml = loadtemplate("pagetitle")
if request.cookies("sf")("username") = "" then
	toptext = loadtemplate("toptextguest")
else
	toptext = loadtemplate("toptextuser")
end if
toptext = toptext & loadtemplate("toptext")
StrHtml = Replace(StrHtml, "{top_text}", toptext)
StrHtml = Replace(StrHtml, "{username}", request.cookies("sf")("username"))
response.write StrHtml

' 论坛关闭
StrSql = "select * from sf_setup"
Set rs2 = Conn.Execute(StrSql)
if rs2("forumclose") = 1 then
StrHtml = loadtemplate("error")
StrHtml = Replace(StrHtml, "{error_text}", rs2("forumclosehint"))
response.write StrHtml
response.end
end if	

' 禁止IP访问
if rs2("killip") = 1 then
	userip = cstr(request.ServerVariables("REMOTE_ADDR"))
	killiplist = rs2("killiplist")
	if killiplist <> "" and userip <> "" then
		killip = split(killiplist, "|")
		struserip = split(userip, ".")
		i = 0
		do until i > ubound(killip)
			strkillip = split(killip(i), ".")
			bolkill = true
			if (struserip(0) <> strkillip(0)) and (strkillip(0) <> "*") then bolkill = false
			if (struserip(1) <> strkillip(1)) and (strkillip(1) <> "*") then bolkill = false
			if (struserip(2) <> strkillip(2)) and (strkillip(2) <> "*") then bolkill = false
			if (struserip(3) <> strkillip(3)) and (strkillip(3) <> "*") then bolkill = false
			if bolkill then
				StrHtml = loadtemplate("error")
				StrHtml = Replace(StrHtml, "{error_text}", rs2("killiphint"))
				response.write StrHtml
				Response.End
			end if
			i = i + 1
		loop
	end if
end if

StrHtml = loadtemplate("pagepath")
StrHtml = Replace(StrHtml, "{path_text}", "<a href=""index.asp"">" & boardtitle & "</a> &raquo; " & loadtemplate("messagetitle"))
response.write StrHtml

' 如果未注册或未登录...
if request.cookies("sf")("username") = "" or request.cookies("sf")("password") = "" then
	StrHtml = loadtemplate("error")
	StrHtml = Replace(StrHtml, "{error_text}", loadtemplate("err_unregistered"))
	response.write StrHtml
	response.end		
end if
' 检测密码...
StrSql = "select password, userid from sf_user where username = '" & ChkSql(request.cookies("sf")("username")) & "'"
Set rs2 = Conn.Execute(StrSql)
err = false
if rs2.bof or rs2.eof then
	err = true
else
	if request.cookies("sf")("password") <> rs2("password") then
		err = true
	else
		userid = rs2("userid")
		StrSql = "update sf_user set lastactivity = '" & now() & "' where userid = " & userid
		Conn.Execute(StrSql)
	end if
end if
if err then
	StrHtml = loadtemplate("error")
	StrHtml = Replace(StrHtml, "{error_text}", loadtemplate("err_chkpassword"))
	response.write StrHtml
	response.end
end if
StrHtml = loadtemplate("messagebox")
StrHtml = Replace(StrHtml, "{msgmax}", msgmax)
response.write StrHtml

error = ""
err = false
msgid = ChkSql(request("msgid"))
if msgid <> "" and (request("action") = "showinbox" or request("action") = "showoutbox") then
	if not IsNumeric(msgid) then
		StrHtml = loadtemplate("error")
		StrHtml = Replace(StrHtml, "{error_text}", loadtemplate("err_url"))
		response.write StrHtml
		response.end
	end if
	msgid = clng(msgid)
	StrSql = "select sf_privatemessage.title, sf_privatemessage.message, sf_privatemessage.showsignature, sf_privatemessage.messageread, sf_privatemessage.dateline, sf_privatemessage.privatemessageid, sf_privatemessage.fromuserid, sf_user.username, sf_user.signature from (sf_privatemessage left join sf_user on sf_privatemessage.fromuserid = sf_user.userid) where sf_privatemessage.privatemessageid = " & msgid & " and sf_privatemessage.userid = " & userid
	Set rs2 = server.CreateObject("ADODB.RecordSet")
	'on error resume next
	'response.write strsql
	'response.end
	rs2.open StrSql, Conn, 1, 3
	if rs2.eof or rs2.bof then
		StrHtml = loadtemplate("error")
		StrHtml = Replace(StrHtml, "{error_text}", loadtemplate("err_url"))
		response.write StrHtml
		response.end
	else
		StrHtml = loadtemplate("showmessage")
		StrHtml = Replace(StrHtml, "{subject}", "<b>" & rs2("title") & "</b>")
		text = xbcodeContent(formatstr(rs2("message")), allowemot, false, true, false)
		if rs2("showsignature") = 1 and  rs2("signature") <> "" then
			text = text & "<br><br><img src=""image/default/sign.gif"" border=0><br>" & xbcodeContent(formatstr(rs2("signature")), allowemot, false, true, false)
		end if
		StrHtml = Replace(StrHtml, "{text}", text)
		if request("action") = "showinbox" then
			StrHtml = Replace(StrHtml, "{msg_btn}", "<a href=""showmessage.asp?action=sendmessage&subject=" & server.htmlencode("Re: " & rs2("title")) & "&username=" & server.htmlencode(rs2("username")) & """><img src=""image/messageicon/replymsg.gif"" border=0></a>&nbsp; <a href=""showmessage.asp?action=delete&msgid=" & rs2("privatemessageid") & """><img src=""image/messageicon/delmsg.gif"" border=0></a>")
		else
			StrHtml = Replace(StrHtml, "{msg_btn}", "<a href=""showmessage.asp?action=delete&msgid=" & rs2("privatemessageid") & """><img src=""image/messageicon/delmsg.gif"" border=0></a>")
		end if
		response.write StrHtml
		StrSql = "update sf_privatemessage set messageread = 1, readtime = '" & now() & "' where privatemessageid = " & msgid
		Conn.execute(StrSql)
	end if
end if	
action = ChkSql(request("action"))
select case action
	case "showoutbox"
		StrSql = "select sf_privatemessage.title, sf_privatemessage.message, sf_privatemessage.messageread, sf_privatemessage.dateline, sf_privatemessage.privatemessageid, sf_privatemessage.touserid, sf_user.username from (sf_privatemessage left join sf_user on sf_privatemessage.touserid = sf_user.userid) where sf_privatemessage.folderid = -1 and sf_privatemessage.userid = " & userid & " order by sf_privatemessage.privatemessageid DESC"
		Set rs2 = server.CreateObject("ADODB.RecordSet")
		'on error resume next
		'response.write strsql
		'response.end
		rs2.open StrSql, Conn, 1, 3
		StrHtml = loadtemplate("showmessageoutboxtop")
		StrHtml = Replace(StrHtml, "{hidden_field}", "<input name=""action"" type=""hidden"" value=""delete"">")
		response.write StrHtml
		if rs2.eof or rs2.bof then
			'
		else
			StrHtml = loadtemplate("showmessageoutbox")
			if not (rs2.bof or rs2.eof) then
				do until rs2.eof
					StrHtml2 = StrHtml
					if rs2("privatemessageid") = msgid then
						StrHtml2 = Replace(StrHtml2, "{subject}", "<b>" & rs2("title") & "</b>")
					else
						StrHtml2 = Replace(StrHtml2, "{subject}", "<a href=""showmessage.asp?action=showoutbox&msgid=" & rs2("privatemessageid") & """>" & rs2("title") & "</a>")
					end if
					StrHtml2 = Replace(StrHtml2, "{username}", "<a href=""showuser.asp?userid=" & rs2("touserid") & """>" & rs2("username") & "</a>")
					StrHtml2 = Replace(StrHtml2, "{time}", rs2("dateline"))
					StrHtml2 = Replace(StrHtml2, "{del_box}", "<input name=""msgid"" type=""checkbox"" value=""" & rs2("privatemessageid") & """>")
					response.write StrHtml2
					rs2.MoveNext
				loop
			end if
			StrHtml = loadtemplate("showmessagebottom")
			response.write StrHtml
			response.write sfcopyright
		end if
	case "showinbox"
		StrSql = "select sf_privatemessage.title, sf_privatemessage.message, sf_privatemessage.messageread, sf_privatemessage.dateline, sf_privatemessage.privatemessageid, sf_privatemessage.fromuserid, sf_user.username from (sf_privatemessage left join sf_user on sf_privatemessage.fromuserid = sf_user.userid) where sf_privatemessage.folderid = 0 and sf_privatemessage.userid = " & userid & " order by sf_privatemessage.privatemessageid DESC"
		Set rs2 = server.CreateObject("ADODB.RecordSet")
		'on error resume next
		'response.write strsql
		'response.end
		rs2.open StrSql, Conn, 1, 3
		StrHtml = loadtemplate("showmessageinboxtop")
		StrHtml = Replace(StrHtml, "{newmsg_icon}", "<img src=""image/messageicon/newmsg.gif"" border=0>")
		StrHtml = Replace(StrHtml, "{oldmsg_icon}", "<img src=""image/messageicon/oldmsg.gif"" border=0>")
		StrHtml = Replace(StrHtml, "{hidden_field}", "<input name=""action"" type=""hidden"" value=""delete"">")
		response.write StrHtml
		if rs2.eof or rs2.bof then
			'
		else
			StrHtml = loadtemplate("showmessageinbox")
			if not (rs2.bof or rs2.eof) then
				do until rs2.eof
					StrHtml2 = StrHtml
					if rs2("privatemessageid") = msgid then
						StrHtml2 = Replace(StrHtml2, "{subject}", "<b>" & rs2("title") & "</b>")
					else
						StrHtml2 = Replace(StrHtml2, "{subject}", "<a href=""showmessage.asp?action=showinbox&msgid=" & rs2("privatemessageid") & """>" & rs2("title") & "</a>")
					end if
					StrHtml2 = Replace(StrHtml2, "{username}", "<a href=""showuser.asp?userid=" & rs2("fromuserid") & """>" & rs2("username") & "</a>")
					messagereadimg = "<img src=""image/messageicon/oldmsg.gif"" border=0>"
					if rs2("messageread") = 0 then messagereadimg = "<img src=""image/messageicon/newmsg.gif"" border=0>"
					StrHtml2 = Replace(StrHtml2, "{read}", messagereadimg)
					StrHtml2 = Replace(StrHtml2, "{time}", rs2("dateline"))
					StrHtml2 = Replace(StrHtml2, "{del_box}", "<input name=""msgid"" type=""checkbox"" value=""" & rs2("privatemessageid") & """>")
					response.write StrHtml2
					rs2.MoveNext
				loop
			end if
			StrHtml = loadtemplate("showmessagebottom")
			response.write StrHtml
			response.write sfcopyright
		end if
	case "sendmessage"
		step = ChkSql(request("step"))
		select case step
			case "2"
				error = ""
				err = false
				if request("subject") = "" then
					error = error & "<br><li>" & loadtemplate("err_postsubject")
				else
					if strLength(request("subject")) > 100 then error = error & "<br><li>" & loadtemplate("err_postsubject")
				end if
				StrHtml = loadtemplate("err_posttext")
				StrHtml = Replace(StrHtml, "{textmaxlength}", "500")
				if request("text") = "" then
					error = error & "<br><li>" & StrHtml
				else
					if strLength(request("text")) > 500 then error = error & "<br><li>" & StrHtml
				end if

				' check user exist...
				StrSql = "select userid from sf_user where username = '" & ChkSql(request("username")) & "'"
				Set rs2 = Conn.Execute(StrSql)
				if rs2.bof or rs2.eof then
					error = error & "<br><li>" & loadtemplate("err_usernotexist")
				else
					touserid = rs2("userid")
				end if

				StrSql = "select privatemessageid from sf_privatemessage where userid = touserid and folderid = 0"
				Set rs2 = Conn.Execute(StrSql)
				if not (rs2.bof or rs2.eof) then
					i = 1
					do until rs2.eof
						i = i + 1
						rs2.MoveNext
					loop
						if i > msgmax then
							error = error & "<br><li>" & loadtemplate("err_msgnimiety")
						end if
				end if



				if error <> "" then
	                        StrHtml = loadtemplate("error")
	                        StrHtml = Replace(StrHtml, "{error_text}", error)
	                        response.write StrHtml
	          	        response.end
               		        end if
				' save pm
				nowtime = now()
				sign = 0
				if request("sign") = "1" then sign = 1
				StrSql = "insert into sf_privatemessage(folderid, userid, touserid, fromuserid, title, message, dateline, showsignature, messageread, readtime) values("
				StrSql = StrSql & "0, " & touserid & ", " & touserid & ", " & userid & ", '" & ChkSql(request("subject")) & "', '" & ChkSql(request("text")) & "', '" & nowtime & "', " & sign & ", 0, '" & nowtime & "')"
				' lock database
				Application.Lock
				Conn.Execute(StrSql)
				if request("savemsg") = "1" then
				StrSql = "insert into sf_privatemessage(folderid, userid, touserid, fromuserid, title, message, dateline, showsignature, messageread, readtime) values("
				StrSql = StrSql & "-1, " & userid & ", " & touserid & ", " & userid & ", '" & ChkSql(request("subject")) & "', '" & ChkSql(request("text")) & "', '" & nowtime & "', " & sign & ", 0, '" & nowtime & "')"
				Conn.Execute(StrSql)
				end if
				' if exceed pm-num limit...
				' outbox
				StrSql = "select privatemessageid from sf_privatemessage where userid = " & userid & " and folderid = -1"
				Set rs2 = Conn.Execute(StrSql)
				if not (rs2.bof or rs2.eof) then
					i = 1
					do until rs2.eof
						if i > msgmax then
							StrSql = "delete from sf_privatemessage where privatemessageid = " & rs2("privatemessageid")
							Conn.execute (StrSql)
						end if
						i = i + 1
						rs2.MoveNext
					loop
				end if
				' unlock database
				Application.UnLock
				StrHtml = loadtemplate("hint")
				StrHtml = Replace(StrHtml, "{hint_text}", loadtemplate("hint_sendmessage"))
				StrHtml = Replace(StrHtml, "{pro_name}", "showmessage.asp")
				response.write StrHtml
			case else
				StrHtml = loadtemplate("sendmessage")
				StrHtml = Replace(StrHtml, "{subject}", request("subject"))
				StrHtml = Replace(StrHtml, "{user_name}", request("username"))
				StrHtml = Replace(StrHtml, "{text}", "")
				response.write StrHtml
				response.write sfcopyright
		end select
	case "delete"
		if not isempty(request("msgid")) then
			idlist=request("msgid")
			if instr(idlist,",")>0 then
				strid=split(idlist)
				for i = 0 to ubound(strid)
					id=clng(strid(i))
					StrSql = "delete from sf_privatemessage where userid = " & userid & " and privatemessageid = " & id
					Conn.Execute(StrSql)
				next
			else
				StrSql = "delete from sf_privatemessage where userid = " & userid & " and privatemessageid = " & clng(idlist)
				Conn.execute(StrSql)
			end if
			StrHtml = loadtemplate("hint")
			StrHtml = Replace(StrHtml, "{hint_text}", loadtemplate("hint_delpost"))
			StrHtml = Replace(StrHtml, "{pro_name}", "showmessage.asp")
			response.write StrHtml
		end if
	case else

end select
response.write loadtemplate("htmlbottom")
response.end
Conn.Close
Set Conn = nothing
Set rs = nothing
Set rs2 = nothing
set ip = nothing
set strip = nothing
set killip = nothing
%>

⌨️ 快捷键说明

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