❶ ASP多關鍵詞搜索,與或問題,請看下面代碼
你是想搜索name匹配
key數組里的元素?只要匹配一個就返回一條數據?還是想干什麼?
❷ ASP英文單詞防SQL注入問題,請教各位
用replace函數和trim
具體代碼如下
<%@language=vbscript codepage=936 %>
<!--#include file="Conn.asp"-->
<!--#include file="../Inc/Config.asp"-->
<!--#include file="inc/md5.asp"-->
<%
dim sql,rs
dim username,password,CheckCode
username=replace(trim(request("username")),"'","")
password=replace(trim(Request("password")),"'","")
CheckCode=replace(trim(Request("CheckCode")),"'","")
if UserName="" then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>用戶名不能為空!</li>"
end if
if Password="" then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>密碼不能為空!</li>"
end if
if CheckCode="" then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>驗證碼不能為空!</li>"
end if
if session("CheckCode")="" then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>你登錄時間過長,請重新返回登錄頁面進行登錄。</li>"
end if
if CheckCode<>CStr(session("CheckCode")) then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>您輸入的確認碼和系統產生的不一致,請重新輸入。</li>"
end if
if FoundErr<>True then
password=md5(password)
set rs=server.createobject("adodb.recordset")
sql="select * from Admin where password='"&password&"' and username='"&username&"'"
rs.open sql,conn,1,3
if rs.bof and rs.eof then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>用戶名或密碼錯誤!!!</li>"
else
if password<>rs("password") then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>用戶名或密碼錯誤!!!</li>"
else
RndPassword=GetRndPassword(16)
rs("LastLoginIP")=Request.ServerVariables("REMOTE_ADDR")
rs("LastLoginTime")=now()
rs("LoginTimes")=rs("LoginTimes")+1
rs("RndPassword")=RndPassword
rs.update
session.Timeout=SessionTimeout
session("AdminName")=rs("username")
session("AdminPassword")=rs("Password")
session("RndPassword")=RndPassword
rs.close
set rs=nothing
call CloseConn()
Response.Redirect "default.asp"
end if
end if
rs.close
set rs=nothing
end if
if FoundErr=True then
call WriteErrMsg()
end if
call CloseConn()
'****************************************************
'過程名:WriteErrMsg
'作 用:顯示錯誤提示信息
'參 數:無
'****************************************************
sub WriteErrMsg()
dim strErr
strErr=strErr & "<html><head><title>錯誤信息</title><meta http-equiv='Content-Type' content='text/html; charset=gb2312'>" & vbcrlf
strErr=strErr & "<link href='style.css' rel='stylesheet' type='text/css'></head><body>" & vbcrlf
strErr=strErr & "<table cellpadding=2 cellspacing=1 border=0 width=400 class='border' align=center>" & vbcrlf
strErr=strErr & " <tr align='center'><td height='22' class='title'><strong>錯誤信息</strong></td></tr>" & vbcrlf
strErr=strErr & " <tr><td height='100' class='tdbg' valign='top'><b>產生錯誤的可能原因:</b><br>" & errmsg &"</td></tr>" & vbcrlf
strErr=strErr & " <tr align='center'><td class='tdbg'><a href='Login.asp'><< 返回登錄頁面</a></td></tr>" & vbcrlf
strErr=strErr & "</table>" & vbcrlf
strErr=strErr & "</body></html>" & vbcrlf
response.write strErr
end sub
Function GetRndPassword(PasswordLen)
Dim Ran,i,strPassword
strPassword=""
For i=1 To PasswordLen
Randomize
Ran = CInt(Rnd * 2)
Randomize
If Ran = 0 Then
Ran = CInt(Rnd * 25) + 97
strPassword =strPassword & UCase(Chr(Ran))
ElseIf Ran = 1 Then
Ran = CInt(Rnd * 9)
strPassword = strPassword & Ran
ElseIf Ran = 2 Then
Ran = CInt(Rnd * 25) + 97
strPassword =strPassword & Chr(Ran)
End If
Next
GetRndPassword=strPassword
End Function
%>
❸ asp 網站調用 文章標題 關鍵詞,描述 可以解決的一百分。謝謝。
首先,我不知道為什麼你把id轉為了字元串,這樣sql執行的時候如果數據表中id欄位是自動編號的情況下肯定出錯。
sql="update news set hits=hits+1 where id="&cstr(request("id"))
改為
sql="update news set hits=hits+1 where id="&cint(request("id"))
其次,現在你的代碼運行後是個什麼情況也沒有個說明?
然後,在文章調用的sql語句後我只看到你調出了文章標題title,沒有其它欄位的讀出,是不是應該說明一下你的數據表結構呢?
<%
Set rsnews=Server.CreateObject("ADODB.RecordSet")
sql="update news set hits=hits+1 where id="&cstr(request("id"))
conn.execute sql
sql="select * from news where id="&owen
rsnews.Open sql,conn,1,1
title=rsnews("title")'--------------------只有這里有對標題的讀出
if rsnews.eof and rsnews.bof then'-----------------------------這行和下一行「沒有找到數據」的判斷應該提到上面去。
response.Write("資料庫出錯")
總之,先把你的情況描述補充完整。也可以加我QQ說明。QQ:1770355
❹ asp過濾關鍵詞
這個不單單是asp的問題,你不知道google怎麼樣處理這個關鍵詞啊。google將頁面上的連接指向你的頁面的時候是怎麼樣處理,這個關鍵字不一定會帶給你處理這個請求的。所以應該是不好實現的。
❺ 跪求asp 截取一段話中某個關鍵詞所在的完整一句話(。號前)的函數,不是關鍵詞左右多少字的,在線等!謝
例如這樣的:str=mid(Rs("str"),instr(Rs("str"),keyword1)-10,len(keyword1)+20)
❻ asp正則替換關鍵詞,但是要跳過在代碼中的關鍵詞
你這個例子明顯舉的不夠清晰。如果在鏈接中的不替換那這里就還是會顯示的,你還是把一個相對完整的列子寫出來吧,
如果以列子中的來講,你只要替換包括在><這兩個符號之間的符,同時不滿足></a>就可以了
❼ asp,採用搜索關鍵詞作為頁面,直接搜索關鍵詞網址成亂碼,如何避免
編碼問題,抄最好襲網頁用戶utf-8編碼
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
session.codepage = 65001
Response.CharSet = "utf-8"
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />這些東西全部給它加上
❽ asp 如何獲取任意網頁的關鍵詞並把關鍵詞分別讀取!
我是這樣做的:
把每次輸入的搜索關鍵字都存入資料庫
增加一個數值欄位,
如果搜索的時候有重復的,當然這個欄位數值累加1
這樣你就很清楚了。
熱門的就是按照這個欄位來排列的
❾ asp網站access資料庫被入侵了,導致標題改人家的關鍵詞,在網站後台無法查到
第一步 先把Access數據來庫下載下自來 看看在哪些表裡的哪些欄位被替換成了人家的關鍵詞
第二步 寫SQL語句 把關鍵詞清理掉
第三步 把Access資料庫轉成MSSQL資料庫
第四步 設置MSSQL伺服器許可權徹底防注入 並修改網站程序里的資料庫連接字元串
第五步 查看網站程序文件 看看哪個文件的修改時間是最晚 那個文件就可能是木馬 或者看看那個文件個頭很大 那也可能是木馬 刪掉 並且把該目錄的寫許可權和可執行許可權禁掉
第六步 查看網站所有目錄 保證出上傳目錄外 其他目錄都沒有可寫許可權 上傳目錄 的可執行許可權禁掉
本人所在公司維護伺服器一般都是這幾步 你試試
換SQL資料庫
❿ asp關鍵詞拆分搜索
關於拆分組詞的這個東西很深奧.
很不客氣的告訴你沒有這樣的組詞先例
網路自稱是最大的中文搜索引擎,擁有最多的字型檔和組詞結構.
當你搜索的時候一樣會出現它范圍外的.
如果你向實現你說的那個方法.
首先就是你有一套自己的詞庫將搜索進來的關鍵詞進行查詢.有的劃分成獨立的單詞沒有就按照整個詞來搜索.
不過不推薦這樣.
中文博大精深.比如你有10000的詞彙量.就等於系統要重復10000詞進行檢索.
平均時間.071MS,當100個甚至更多的用戶搜索的時候.你想像一下.
你可以參照網路的目錄結構
索引-目錄-詞庫這種方法.
單純的實現:
再你的庫裡面有一個關鍵字表 Key,包含欄位ID和KeyWord的兩個欄位
KeyWord放你的詞庫.比如有 "中華|酒店|客服"等等
SearchWord="中華酒店"
Keystr="中華|酒店|客服"
SQL="select * from 表 where 1=1 "
Arr=split(Keystr,"|")
for i=1 to UBound(Arr)
if instr(Arr(i),SearchWord)>0 then
SQL=SQL&" and 欄位 like '%"&&Arr(i),"%'"
End if
Next
打開你的資料庫查詢