Tải bản đầy đủ (.pdf) (5 trang)

Giáo Trình Lập Trình Ứng Dụng CSDL Web ASP- P24 ppsx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (209.24 KB, 5 trang )

Gi¸o tr×nh lËp tr×nh øng dông CSDL Web ASP
=== St by hoangly85 ===



116

Minh Mn12345
Tuan Hjgtsf
Hai 13-937
Vậy ta tạo một tệp có tên là ỔỨỗỡẹứĩSP chứa các hộp textbox cho user nhập ồ
<html>
<head>
<title>Login</title>
</head>
<body>
<form method="POST" action="VALIDATE.ASP">
<p><font face=".VnTimeH">Nhập username và passwordỉụfontặỉụpặ
<p><font face=".VnTime" size="4">UserName<input type="text"
name="username" size="20"></font></p>
<p><font face=".VnTime" size="4">Password <input type="password"
name="password" size="20"></font></p>
<p><font face=".VnTime" size="4"><input type="submit" value="Login"
name="Login"><input type="reset" value="Clear" name="Clear"></font></p>
</form>
</body>
</html>

Ta tạo tệp có tên VĩỔỡừĩTẫứĩSP ðể truy xuất vào database ðể kiểm tra ồ
<%
strUN=request(“username”ờ


strPW=request(“password”ờ
set conn=Server.CreateObject("ADODB.Connection")
conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&_
server.mappath("security.mdb")
conn.open
set rs = Server.CreateObject("ADODB.recordset")
sql="SELECT * FROM LIST WHERE USERNAME=’ẽ ạ strUẹ ạ “’ and “ ạ _
“PĩSSWỨRừ ọ ‘” ạ strPW ạ “’”
rs.Open sql, conn,2,3
if not (rs.eof or rs.bof) then
Response.write “ởạn không có quyền ðýợc truy cập trang này”
Gi¸o tr×nh lËp tr×nh øng dông CSDL Web ASP
=== St by hoangly85 ===



117

Response.end ‘ ngừng duyệt
else
Response.write “ắhào mừng bạn ”
end if
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
Tuy nhiên vẫn phải lýu ý trýờng hợp sau ồ giả sử ta có hệ thống trang Web gồm
5 files mà file nào cũng cần phải kiểm tra quyền hạn truy nhập của userứ Vậy ngoài
màn hình login ra ta còn phải bảo vệ cho hệ thống các trang web vì ðề phòng trýờng

hợp user biết ðịa chỉ các trang Web này mà user vào thẳng luônứ Vậy ta làm nhý sau:
Trang login kiểm tra username và password nhý ở trênứ Tuy nhiên sau khi kiểm
tra xong ta phải lýu kết quả kiểm tra ðýợc vào session ộsessionộ“login”ờ ọ “ok” chẳng
hạnờ
<%
strUN=request(“username”ờ
strPW=request(“password”ờ
set conn=Server.CreateObject("ADODB.Connection")
conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&_
server.mappath("security.mdb")
conn.open
set rs = Server.CreateObject("ADODB.recordset")
sql="SELECT * FROM LIST WHERE USERNAME=
’ẽ ạ strUẹ ạ “’ and “ ạ _
“PĩSSWỨRừ ọ ‘” ạ strPW ạ “’”
rs.Open sql, conn,2,3
if not (rs.eof or rs.bof) then
Response.write “ởạn không có quyền ðýợc truy cập trang này”
Response.end ‘ ngừng duyệt
else
Session(“Ổogin”ờọ”ok” ‘ ỗhi nhận việc thành công login
end if
rs.close
set rs=nothing
conn.close
Gi¸o tr×nh lËp tr×nh øng dông CSDL Web ASP
=== St by hoangly85 ===




118

set conn=nothing
%>
Ta tạo một tệp có tên là ắheckỔoginứasp ứ ỹục ðích của tệp này sẽ kiểm tra
biến Sessionộ“login”ờ nếu nó bằng “ok” nghĩa là user hợp lệ không thì ngýợc lại ồ
<%
if not (session(“login”ờọ”ok”ờ then
response.write “ ởạn không ðýợc quyền truy nhật trang web này “
response.redirect “loginứasp” ‘ tự ðộng quay sang trang login
end if
%>
Và ở ðầu mỗi tệp ĩSP mà ta cần bảo vệ việc truy cập trái phép ta chèn thêm
dòng lệnh sau ồ ỉầ #CheckLogin.asp >
4.3. Một số kỹ thuật với CSDL :
4.3.1. Phân trang RecordSet
Khi select => cho kết quả ử bảng gồm nhiều hàngứ Tuy nhiên mỗi lần chỉ muốn
sử dụng một vài hàngự ví dụồ bảng ảớ hàngự mỗi lần hiển thị ửớ hàng ọặ sử dụng kỹ
thuật pagingứ ĩừỨ cung cấp các thuộc tính của Recordset nhý: PageSize, PageCount,
AbsolutePage.
PageCount: số trangự PageSizeồ số hàngứ
ở ðây ta dùng biến session ắurrentPage ðể ghi nhận trang hiện hànhứ
<% Select Case Request.QueryString(“ừirection”ờ
Case “” ‘ẹull
Session(“ắurrentPage”ờ ọ ử
Case “ẹext”
Session(“ắurrentPage”ờ ọ Sessionộ“ắurrentPage”ờ ủ ử
Case “Previous”
Session(“ắurrentPage”ờ ọ Sessionộ“ắurrentPage”ờ - 1
End Select %>

 Chú ýồ RequestứQueryStringộ“ừirection”ờ ỉọặ QueryString(“ừirection”ờ
Tiến hành kết nối truy vấn dữ liệuứ
<%
const adOpenKeySet = 1
dim objConnection không cần khai báo cũng ðýợc
dim objRexordset
Set objConnection = Server.CreateObject(
“ĩừỨừởứắonnection”ờ
Gi¸o tr×nh lËp tr×nh øng dông CSDL Web ASP
=== St by hoangly85 ===



119

Set ObjConnection.Open “ởiblio”ự “”ự “”
Dim strSQL
StrSQL = “Select ậ from ĩuthors”
Set objRecordSet = Server.CreateObject(“ĩừỨừởứRecordSet”ờ
ObjRecordSet.PageSize = 10
ObjRecordSet.Open strSQL, objConnection, adOpenKeyset
ObjRecordSet.AbsolutePage = CLng(Session(“ắurrentPage”ờờ
%>
<P> Page = <%=Session(“ắurrentPage”ờ ềặ of
<%=ObjRecordSet.PageCount>
<% Dim i
For i = 1 to ObjRecordSet.PageSize %>
<% = ObjRecordSet(“ĩuthors”ờ ềặ

<% ObjRecordSet.MoveNext

Next %>
<% if CLng(Session(“ắurrentPage”ờờ ỉ ỨbjRecordSetứPageắount Then ềặ
<P> <A HREF = “pagingứaspẻừirectionọẹext”ặẹext PageỉụĩặỉụPặ
<%Enf if%>
<% If CLng(Session(“ắurrentPage”ờờ ặ ử then ềặ
<P><A Href = “pagingứaspẻừirectionọPrevious”ặPrevious PageỉụĩặỉụPặ
<%Enf if%>
<% ObjRecordSet.close
ObjConnection.close
Set objRecordSet = nothing
Set objConnection = nothing %>
4.3.2. Gọi Stored Procedure trong ASP
<% Set Cnn1 = Server.CreateObject(“ĩừỨừởứắonnection”ờ
StrCnn = “driver ọ {SQỔ Server}ị Server ọ smasị uid ọ saị pwdọ ị databaseọ
pubs”
Cnn1.Open strCnn
Et sp = CreateObject(“ĩừỨừởứắommand”ờ
Set sp.ActiveConnection = Cnn1
Sp.CommandType = adCmdStoredProc
Gi¸o tr×nh lËp tr×nh øng dông CSDL Web ASP
=== St by hoangly85 ===



120

Sp.CommandText = “sp_ẳelp”
Set pm = sp.CrateParameter(“objname” ọ ẵớớự ửự ốẵự “authors”ờ
Sp.parameters.Append pm
Set rs = sp.Excute()

Do Until rs is Nothing
Reponse.Write “<Table border = 1 bgColor = White><TR>”
Call PrintHeadings
Call PrintAllRecordsInRS
Loop Reponse.Write “ỉụTableặỉởRặỉởRặ”
Set rs=rs.NextRecordSet

Call CleanUp %>
<% Sub PrintHeadings()
For each hdFld in rs.Fields
Reponse.Write “ỉTẳặ” ạ hdỳldứẹame ạ “ỉụTẳặ”
Next
Reponse.Write “ỉTRặ”
End sub
Sub printAllRecordsInRS()
Do until rs.EOF
For each fld in rs.Fields
Reponse.Write “ỉTừặ” ạ fld
Next
Reponse.Write “ỉTRặ”
Rs.MoveNext
Loop
End Sub
Sub CleanUp()
Set rs = nothing
Cnn1.Close
Set Cnn1 = nothing
End sub %>


×