?? search.asp
字號:
<!--#INCLUDE FILE="inc/db_inc.asp"-->
<!--#INCLUDE FILE="inc/char_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("searchtitle"))
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> » " & 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 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 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")
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, "{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 = ""
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
StrHtml2 = StrHtml2 & " <a href=""search.asp?page=1" & urlstr &"""><<</a>"
for i=beginpage to endpage
if i = page then
StrHtml2 = StrHtml2 & " <b>[" & i & "]</b> "
else
StrHtml2 = StrHtml2 & "<a href=""search.asp?page=" & i & urlstr & """> [" & i & "] </a>"
end if
next
StrHtml2 = StrHtml2 & "... <a href=""search.asp?page=" & pagecount & urlstr & """> ["&pagecount&"] >></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") & """> " & 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
set ip = nothing
set strip = nothing
set killip = nothing
%>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -