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

📄 search.asp

📁 苹果风格的论坛 asp编写
💻 ASP
字号:
<!--#INCLUDE FILE="inc/db_inc.asp"-->
<!--#INCLUDE FILE="inc/char_inc.asp"-->
<!--#INCLUDE FILE="header.asp"-->
<%
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'	Snowman Forum v2.0
'
'	Copyright(C) Snowman, All rights reserved.
'
'	http://www.xinboard.net
'
'	Access版本免费, 欲使用SQL Server商业版本请购买使用权
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

dim StrSql, toptext, rs, rs2, StrHtml, StrHtml2, error, err

StrHtml = loadtemplate("htmltop")
StrHtml = Replace(StrHtml, "{pagetitle}", loadtemplate("searchtitle"))
StrHtml = Replace(StrHtml, "{style_path}", loadtemplate("path"))
StrHtml = Replace(StrHtml, "{forumtitle}", boardtitle)
response.write StrHtml
StrHtml = loadtemplate("pagetitle")
StrHtml = Replace(StrHtml, "{title_img}", "<img src=""style/" & loadtemplate("path") & "/image/title.gif"">")

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
StrHtml = loadtemplate("pagepath")
StrHtml = Replace(StrHtml, "{path_text}", "<img src=""style/" & loadtemplate("path") & "/image/home.gif""><a href=index.asp>" & boardtitle & "</a> &raquo; " & loadtemplate("searchtitle"))
response.write StrHtml

userid = -1

' 如果未注册或未登录...
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 lastforum = -1, 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

step = ChkSql(request("step"))
select case step
	case "2"
		error = ""
		if request("key") = "" and request("author") = "" then error = error & loadtemplate("err_searchkeyword")
		if error <> "" then
			StrHtml = loadtemplate("error")
			StrHtml = Replace(StrHtml, "{error_text}", error)
			response.write StrHtml
			response.end
		end if
		if request("join") = "1" then
			keyjoin = " and "
		else
			keyjoin = " or "
		end if
		if request("date") = "" then
			searchdate = 0
		else
			searchdate = ChkSql(request("date"))
			if not IsNumeric(searchdate) then searchdate = 0
			searchdate = clng(searchdate)
		end if
		if request("forumid") = "" then
			forumid = -1
		else
			forumid = ChkSql(request("forumid"))
			if not IsNumeric(forumid) then forumid = -1
			forumid = clng(forumid)
		end if
		if request("author") = "" then
			author = ""
		else
			author = ChkSql(request("author"))
			StrSql2 = "select userid from sf_user where username = '" & author & "'"
   			Set rs2= Conn.Execute(StrSql2)
   			if rs2.bof or rs2.eof then
    				error = error & loadtemplate("err_usernotexist")
			else
				author = " sf_post.userid = " & rs2("userid")
			end if
		end if
		if request("type") = "1" then
			keytype = 1
		else
			keytype = 2
		end if
		if request("order") = "1" then
			order = 1
		else
			order = 2
		end if
		StrSql = "select sf_forum.title as forumtitle, sf_forum.forumid, sf_post.postid, sf_post.title as posttitle, sf_post.userid as postuserid, sf_post.username as postusername, sf_post.dateline as postdateline, sf_post.iconid from (sf_forum left join sf_thread on sf_forum.forumid = sf_thread.forumid) left join sf_post on (sf_thread.threadid = sf_post.threadid) where "
		StrSql2 = ""
		if forumid > 0 then StrSql2 = StrSql2 & "sf_forum.forumid = " & forumid
		if searchdate <> 0 then
			if forumid > 0 then StrSql2 = StrSql2 & " and "
			StrSql2 = StrSql2 & " (sf_thread.dateline > #" & dateadd("d", -1 * searchdate, date()) & " 00:00:00" & "#) "
		end if
		if request("key") <> "" then
		if StrSql2 <> "" then StrSql2 = StrSql2 & "and "
		' 得到关键字
		key = ChkSql(request("key"))
		keywords = split(key, " ")
		keycnt = ubound(keywords)
		if keycnt > 0 then StrSql2 = StrSql2 & "("
		for each word in keywords
			' 关键字为标题
			if keytype = 1 then
				StrSql2 =StrSql2 & "sf_post.title like '%" & word & "%'"
			end if
			' 关键字为内容
			if keytype = 2 then
				StrSql2 =StrSql2 & "sf_post.title like '%" & word & "%' or sf_post.pagetext like '%" & word & "%'"
			end if
			if cnt < keycnt then StrSql2 = StrSql2 & keyjoin
			cnt = cnt + 1
		next
		if keycnt > 0 then StrSql2 = StrSql2 & ")"
		end if
		' 如果where子句不为空
		if StrSql2 <> "" then
			StrSql = StrSql & StrSql2
			if author <> "" then StrSql = StrSql & " and "
		end if
		StrSql = StrSql & author
		StrSql =StrSql & " order by sf_thread.threadid DESC, sf_post.postid ASC"
		if error <> "" then
			StrHtml = loadtemplate("error")
			StrHtml = Replace(StrHtml, "{error_text}", error)
			response.write StrHtml
			response.end
		end if
		Set rs2 = server.CreateObject("ADODB.RecordSet")
		'response.write strsql
		rs2.open StrSql, Conn, 1, 1
		StrHtml = loadtemplate("hint_searchresult")
		if rs2.eof or rs2.bof then
			StrHtml = Replace(StrHtml, "{result_num}", "0")
			response.write StrHtml
		else
			StrHtml = Replace(StrHtml, "{result_num}", rs2.RecordCount)
			response.write StrHtml
			StrHtml = loadtemplate("searchstep2top")
			response.write StrHtml
			' 获得当前页数
			page = request("page")
			if page = "" then
				page = 1
			else
				if not IsNumeric(page) then
					page = 1
				else
					page = clng(page)
				end if
			end if
			i = 1
			pagecount = 1
			StrHtml = loadtemplate("searchstep2")
			if not (rs2.bof or rs2.eof) then
				rs2.PageSize = forumrow
				if page > rs2.PageCount then page = rs2.PageCount
				rs2.AbsolutePage = page
				pagecount = rs2.PageCount
				id = 0
				do until rs2.eof or i > rs2.PageSize
					StrHtml2 = StrHtml
					StrHtml2 = Replace(StrHtml2, "{subject}", "<a href=""showthread.asp?postid=" & rs2("postid") & """>" & rs2("posttitle") & "</a>")
					StrHtml2 = Replace(StrHtml2, "{newwin}", "<a href=""showthread.asp?postid=" & rs2("postid") & """ target=""_blank""><img src=""style/" & loadtemplate("path") & "/image/newwin.gif"" border=""0""></a>")

					if rs2("iconid") = 0 then
						StrHtml2 = Replace(StrHtml2, "{icon}", "")
					else
						StrHtml2 = Replace(StrHtml2, "{icon}", "<img src=""image/posticon/icon" & rs2("iconid") & ".gif"">")
					end if
					StrHtml2 = Replace(StrHtml2, "{username}", "<a href=""showuser.asp?userid=" & rs2("postuserid") & """>" & rs2("postusername") & "</a>")
					StrHtml2 = Replace(StrHtml2, "{forum}", "<a href=""showforum.asp?forumid=" & rs2("forumid") & """>" & rs2("forumtitle") & "</a>")
					StrHtml2 = Replace(StrHtml2, "{postdate}", rs2("postdateline"))
					response.write StrHtml2
					rs2.MoveNext
					i = i + 1
				loop
			end if
			StrHtml = loadtemplate("searchstep2bottom")
			urlstr = ""
			if request("key") <> "" then urlstr = urlstr & "&key=" & request("key")
			if request("join") <> "" then urlstr = urlstr & "&join=" & request("join")
			if request("type") <> "" then urlstr = urlstr & "&type=" & request("type")
			if request("author") <> "" then urlstr = urlstr & "&author=" & request("author")
			if request("forumid") <> "" then urlstr = urlstr & "&forumid=" & request("forumid")
			if request("date") <> "" then urlstr = urlstr & "&date=" & request("date")
			if request("order") <> "" then urlstr = urlstr & "&order=" & request("order")
			urlstr = urlstr & "&step=2"
			StrHtml2 = "<img src=""style/" & loadtemplate("path") & "/image/page.gif""> " & pagecount & ": "
			beginpage = 1
			endpage = pagecount
			if pagecount >= 9 then
				if page >= 5 then
					beginpage = page - 4
					if page <= (pagecount - 4) then
						endpage = page + 4
					else
						endpage = pagecount
						beginpage = pagecount - 4
					end if
				else
					beginpage=1
					endpage=9
				end if
			end if
			if beginpage>1 then StrHtml2 = StrHtml2 & "&nbsp;<a href=""search.asp?page=1" & urlstr & """>&laquo;</a>"
			for i=beginpage to endpage
				if i=page then
					StrHtml2 = StrHtml2 & "&nbsp;<b>" & i & "</b>&nbsp;"
				else
					StrHtml2 = StrHtml2 & "<a href=""search.asp?page=" & i & urlstr & """>&nbsp;" & i & "&nbsp;</a>"
				end if
			next
			if endpage < pagecount then StrHtml2 = StrHtml2 & "&nbsp;<a href=""search.asp?page=" & pagecount & urlstr & """>&raquo;</a>"
			StrHtml = Replace(StrHtml, "{page_text}", StrHtml2)
			response.write StrHtml
			response.write sfcopyright
		end if
	case else
		StrHtml = loadtemplate("searchstep1")

		StrHtml2 = "<select name=""forumid"">" & chr(10)
		StrHtml2 = StrHtml2 & "<option value=""-1"">---"& boardtitle &"---</option>" & chr(10)
		StrSql = "select sf_forum.forumid, sf_forum.title from sf_forum left join sf_cate on (sf_forum.cateid = sf_cate.cateid) where sf_cate.displayorder>0 and sf_forum.displayorder>0 order by sf_cate.displayorder DESC, sf_cate.cateid ASC, sf_forum.displayorder DESC, sf_forum.forumid ASC"
		Set rs2 = Conn.Execute(StrSql)
		if not (rs2.bof or rs2.eof) then
			do until rs2.eof
				StrHtml2 = StrHtml2 & "<option value=""" & rs2("forumid") & """>&nbsp; &nbsp;" & rs2("title") & "</option>" & chr(10)
				rs2.MoveNext
			loop
		end if
		StrHtml2 = StrHtml2 & "</select>" & chr(10)
		StrHtml = Replace(StrHtml, "{forum_select}", StrHtml2)
		response.write StrHtml
		response.write sfcopyright
end select
response.write loadtemplate("htmlbottom")
response.end
Conn.Close
Set Conn = nothing
Set rs = nothing
Set rs2 = nothing
%>

⌨️ 快捷键说明

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