


| Thực hành Session - Login và Logout |
Thực hành Session - Login và LogoutTrong 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 > |
|---|