Tự học guitar, lập trình, khiêu vũ, tennis - Tu hoc guitar, lap trinh, khieu vu, tennis

Saturday
May 26th
Text size
  • Increase font size
  • Default font size
  • Decrease font size

Trang chủ arrow Lập trình arrow ASP arrow Thực hành Session - Login và Logout
Thực hành Session - Login và Logout

Thực hành Session - Login và Logout

Trong website của bạn có thể có những nơi chỉ dành cho các thành viên đã đăng ký mà không dành cho khách vãng lai, ví dụ như Forum, Web site mua bán...Để truy cập những nơi này buộc thành viên phải đăng nhập vào website (login), các thành viên đã login sau đó có thể thoát (logout) .

Việc ghi nhớ một thành viên đã login được lưu trong một biến kiểu session. Khi thành viên này logout chúng ta chỉ việc xóa biến session này.

Toàn bộ phần này gồm form login, file xử lý form login, file xử lý logout, database là table tblUser mà chúng ta đã dùng trước đây.

Thật sự không có gì mới và quá khó hiểu. Chỉ cần bạn hiểu một nguyên tắc rất đơn giản trong những ứng dụng kiểu thế này:

Nếu bạn có "tên tuổi" trong database thì "tên tuổi" đó sẽ được gắn vào một biến Session, và coi như bạn Login thành công.
Nếu bạn không
có "tên tuổi" trong database thì biến Session sẽ là Rỗng và coi như bạn Login hỏng
Sau đó nếu bạn muốn Logout thì ta dùng cú pháp session.abandon để hủy Session, cũng có nghĩa là Biến Session sẽ Rỗng

Tóm lại, cứ thấy biến Session Rỗng thì không cho vào nhà

Đây là tóm tắt các File

LoginForm.htm: Form login
LoginProcess.asp: xử lý form login, nếu login thành công thi redirect tới trang
Index.asp,nếu không thì quay lại form login.
Index.asp: Trang chủ chỉ dành cho member đã login bằng cách kiểm tra biến
session, nếu biến này rỗng (chưa login) thì từ chối truy cập và redirect đến
form login
Logout.asp: Trang xử lý logout bằng cách hủy session


LoginForm.htm

<html>
<head>
<title>Login</title>
</head>
<body>
<form method="POST" action="LoginProcess.asp">
<p> Username: <input type="text" name="username"></p>
<p> Password: <input type="password" name="password"></p>
<p><input type="submit" value="Submit" name="submit"></p>
</form>
</body>
</html>


LoginProcess.asp

<!--#include file ="Connection.asp"-->
<%
username=request.form("username")
password=request.form("password")
openConn
sql="select * from tblUser where username='"&username&"' and
password='"&password&"'"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn
if not rs.eof then 'login thành công
session("username")=rs("username")
rs.close
destroyConn
response.redirect "index.asp"
else 'login thất bại
session("username")=""
rs.close
destroyConn
response.redirect "LoginForm.html"
end if
%>


Index.asp

<html>
<head>
<title>Home page for Member only</title>
</head>
<body>
<%
if session("username")="" then 'kiểm tra người dùng đã login chưa?
response.redirect "LoginForm.html"
end if%>
Welcome to <%=session("username")%>. This page is for Member only!
<a href="Logout.asp"> Logout</a>
</body>
</html>


Logout.asp

<%session.abandon 'hủy session
session("username")="" %>
<a href="LoginForm.html">Login</a>


Lưu ý:


Khi được gọi thì biến Session hiện tại sẽ không bị hủy ngay cho đến khi các tất cả các Script thực thi xong. Vì vậy ta sử dụng session("username")=""

Bạn copy và tạo 4 file với nội dung và tên giống như trên. Sau đó upload cả 4 file lên Server và chạy thử file LoginForm.htm. Ví dụ: tenbanchon.co.cc/LoginForm.htm




 
< Trước   Tiếp >