NGÔN NGỮ LẬP TRÌNH ASP
8.4. Ví dụ minh họa
Sau đây là một ví dụ hiển thị một cửa sổ đăng nhập (login) cho phép người dùng gõ vào tên truy cập (username) và mật khẩu (password). Chương trình sẽ kiểm tra cặp username và password này có tồn tại trong tập tin password.txt trong thư mục hiện tại của ứng dụng không? Nếu có thì chương trình sẽ đưa người dùng đến trang main.asp. Nếu không thì chương trình sẽthông báo và bắt người dùngđăng nhập lại.
Tập tin common.asp chứa các hàm mà người dùng định nghĩa trong đó có hàm CheckAccount dùng để kiểm tra xem username và password truyền vào có tồn tại trong tập tin password.txt không? Nếu có thì hàm này trả về true. Nếu không thì hàm này sẽ trả về false. Nội dung của common.asp nhưsau:
<%
Function CheckAccount(uname,upass) Dim fso ' Bien chua doi tuong FileSystem Dim ftxt ' Bien chua doi tuong File
Dim stLine Dim path
Dim uname_pass uname=CStr(uname) upass=CStr(upass)
uname_pass = uname & ":" & upass CheckAccount=false ' Mac dinh ban dau path = Server.MapPath(".") & "\Password.txt"
Set fso =
Server.CreateObject("Scripting.FileSystemObject") Set ftxt = fso.OpenTextFile(path)
While (ftxt.AtEndOfStream <> true) and
•(CheckAccount=false) stLine = ftxt.Readline
if (uname_pass = stLine) then CheckAccount= true end if
Wend ftxt.Close Set ftxt=nothing Set fso=nothing
End Function
%>
Tập tin login.asp là tập tin mô tả giao diện với người dùng.
Nội dung củalogin.aspnhưsau:
<!--#include file = "common.asp" -->
<html>
<head>
<title> Login to …</title>
</head>
<body>
<b><font size="6">Login</font></b></p>
<%
Dim uname, upass
uname = Request.Form("Uname") upass = Request.Form("Upass")
if (uname <> "") and (upass <> "") then
if CheckAccount(uname, upass) = true then response.redirect ("main.asp")
else
response.write ("<font color = red> Please check username and password! </font>")
end if
elseif uname <> "" then
response.Write ("<font color = red> Please enter password! </font>")
elseif upass <> "" then
response.Write ("<font color = red> Please enter username! </font>")
end if
%>
<form method="POST" action = "login.asp">
<table border="1" cellpadding="0" cellspacing="0"
width="27%">
<tr>
<td width="10%">Username </td>
<td><input type = text size="20" name="Uname"
value = '<%=
Server.HTMLEncode(Request.Form("Uname"))%>'>
</td>
</tr>
<tr>
<td width="10%">Password </td>
<td><input type="password" size="20" name="Upass">
</td>
</tr>
<tr>
<td width="100%" colspan="2">
<p align="center">
<input type="submit" value="Login" name="B3"></td>
</tr>
</table>
</form>
</body>
</html>
Tạo tập tin main.asp. Khi bạn viết một ứng dụng web thực sựthì trang main.asp chính là trang chính củaứng dụng. Giảsử tập tin main.asp với nội dung sau:
<html>
<head>
<title> Trang web chính… </title>
</head>
<body>
<%
Response.Write (“Đăng nhập thành công. Chào mừng bạn đến trang web của chúng tôi!”)
%>
</body>
</html>
Tạo tập tin Password.txt vàđặt cùng thưmục với ba tập tin trên với nội dung sau:
abc:abc cobe:becon nvlong:long1280 hung1254:meocon
Đây chính là danh sách các username và password mà ứng dụng cho phépđăng nhập vào. Nếu muốn thêm người dùng, bạn thêm vào tập tin này các dòng tươngứng.
Đặt 4 tập tin vừa tạo vào trong cùng một thưmục và tạo một thư mục ảo với tên MyWeb chỉ đển thư mục chứa bốn tập tin này.
Mởtrình duyệt và gõ vào http://localhost/MyWeb/login.asp.
Kết quảsẽhiển thịlên màn hình nhưsau:
Khi người dùng gõ vào đúng username và password trong tập tin password.txt thì khi nhấn nút login người dùng sẽ được chuyển sang trang main.asp nhưsau:
Nhưng khi gõ sai username hay password thì một câu thông báo sẽđược hiện lên và bắt người dùngđăng nhập lại nhưsau: