通常,我們在設計過程中會面臨三種情況:某一頁面只讓某一用戶瀏覽、某一頁面只讓某些用戶瀏覽和某些頁面只讓某些用戶瀏覽。第一種情況很簡單,筆者不再敘述,下文將詳細介紹后兩種情況的設計方法。
一、某一頁面只讓某些用戶瀏覽
將這些客戶的信息保存在數據庫中,若能在數據庫中檢索到客戶輸入的姓名和密碼就允許訪問該頁面。
Protect.asp文件:需限權訪問的頁面
此處可輸入該頁面的其它內容
請輸入姓名:
請輸入密碼:
<%setconn=server.createobject("adodb.connection")
conn.open"asptest" ′asptest是存放客戶信息的表單permission所在的數據庫的名字
sql1="select frompermissionwherexm='"&request.form("text")
&&"'andmima='"&request.form("password")&&"'"
setrs=conn.execute(sql1)%>
如果數據庫中存在客戶輸入的姓名和密碼,就顯示頁面product.asp的超級鏈接 <%ifnotrs.eofthen%>
本公司的產品
<%endif%>
2.用session實現
session是用戶級的全局變量,我們將客戶成功登錄的信息記錄到session中后,用戶就可直接瀏覽其它限權訪問的頁面了。
global.asp
<script language=vbscript runat=server>
sub Session_onstart
session("register")="false"
′記錄客戶成功登錄的信息
session("lognumber")=0
′記錄客戶嘗試登錄的次數,最多允許嘗試三次
session("prescript")=""
′記錄客戶要訪問的頁面,以便登錄后返回該頁
end sub
</script>
register.asp
<% if request.form("b1")="提交" then
set
conn=server.createobject("adodb.connection")
conn.open "asptest"
sql1="select * from permission where xm='"&request.form("name") &&"' and mima='"&request.form("password")&&"'"
set rs=conn.execute(sql1)
if not rs.eof then
session("register")="true"
′若數據庫中存在該用戶的信息,就記錄該用戶成功登錄的標記到register變量中
rs.close
conn.close
response.redirect session("prescript")
′成功登錄后自動返回剛才要訪問的頁面
end if
if session("lognumber")<3 then
session("lognumber")=
session("lognumber")+1
response.redirect "register.asp"
else
response.redirect "sorry.asp"
end if
′允許嘗試登錄三次,若均未成功,則禁止訪問并同時顯示頁面sorry.asp
end if%>
<%if session("lognumber")>0 then%>
輸入有誤!請重新輸入姓名和密碼!
<% end if%>
Protect.asp文件 ′需限權訪問的頁面
<% if session("register")< >"true" then
session("prescript")=
request.servervariables("script_name")
response.redirect "register.asp"
end if%>
′記錄該頁面的路徑到prescript變量中并強制客戶登錄
content="text/html; charset=gb_2312-80">
′此處可輸入該頁面其它內容的腳本
以上幾種方法,設計者可以根據系統的需要進行靈活運用。