09/10/2018, 18:22

tạo một form login và reg đơn giản với asp

Hôm nay xin hướng dẫn bạn tạo một form login và reg đơn giản với asp.
I. Đầu tiên chúng ta tạo một file.mdb chứa acc (access căn bản thôi nha, muốn nâng cao thì mua ibt12 mà học thêm)
1. Mở access, vào new




2. Click vào "blank database", sẽ chuyển đến




3. Tạo các trường, nhớ chọn kiểu dữ liệu cho đúng. Ở đây ta tạo 2 trường là user và pass đều có kiểu dữ liệu là text.




theo mặc định thì chiều dài chuỗi được khởi tạo theo kiểu text là 50 kí tự, nếu bạn thấy chuỗi bạn nhập vào có thể lớn hơn 50 thì hãy thay bằng số lớn hơn hoặc ngược lại. Nếu dài quá thì dùng kiểu meno.
Tạo các trường xong rồi thì bạn hãy nhấn save để lưu lại,

4. Access sẽ yêu cầu bạn đặt tên cho table




5. Nó sẽ hỏi bạn tạo primary key, hãy chon no nếu không cần thiết.




6. Đóng cửa sổ




7. Trở về màn hình ban đầu, khi đó bạn sẽ có một table mới




8. Click đôi vào table, chuyển qua phần xem nội dung table, tại đây bạn cũng có thể nhập liệu cho table.




trong quá trình bạn nhập liệu, access lưu lại tự động nội dung của các record

Vập là đã hoàn tất quá trình tạo một file.mdb, bây giờ bắt tay vào viết asp thôi.

II. Làm trang reg.

tạo conf.asp có nội dung như sau:

============================begin================= ===========

<%
dsn = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db.mdb")
set db = Server.CreateObject("ADODB.Connection")
db.open(dsn)
%>

============================end=================== =========

tạo tiếp reg.asp

============================begin================= ===========

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>HUNGDATDO - REG</title>
</head>
<body>
<%
submit=Request("submit")
if (submit=1) then
'kiem tra vao lan dau hay da submit
%>
<!--#include file="conf.asp"-->
<% err=0
ten=Request("ten")
matkhau=Request("matkhau")
matkhau2=Request("matkhau2")
set reg = Server.CreateObject("ADODB.RecordSet")
str="SELECT * FROM info;"
reg.LockType = 3
reg.open str,db
do while not reg.eof and not err=1
if reg("user")=ten then err=1
'kiem tra tat ca cac record xem co user nao trung khong?
reg.movenext
loop
if not err=1 then
if not(matkhau=matkhau2) or matkhau="" then
'kiem tra tim hop le cua mat khau
err=2
else
reg.addNew
reg.Fields("user") = ten
reg.Fields("pass") = matkhau
reg.Update
end if
end if
reg.close
set reg = Nothing
%>
<%
if err=1 then
Response.Write("Username đã được đăng kí, bạn hãy chọn tên khác.")
else
if err=2 then
Response.Write("Bạn chưa nhập mật khẩu hoặc 2 mật khẩu không khớp.")
else
Response.Redirect "index.asp"
end if
end if
%>
<%end if%>
<form method="post" action="reg.asp" name="myForm">
<input type="hidden" name="submit" value="1">
<div align="center">
<center>
<table border="0" style="border-collapse: collapse" bordercolor="#111111" width="40%" id="AutoNumber1">
<tr>
<td width="35%" align="right">UserName: </td>
<td width="65%">
<input maxlength="8" value="<%= ten%>" name="ten" size="10"></td>
</tr>
<tr>
<td width="35%" align="right">PassWord: </td>
<td width="65%">
<input type="password" name="matkhau" size="15" maxlength="12"></td>
</tr>
<tr>
<td width="35%" align="right">Retype: </td>
<td width="65%">
<input type="password" name="matkhau2" size="15" maxlength="12"></td>
</tr>
<tr>
<td width="35%" align="right"></td>
<td width="65%">
<input type="submit" value=".:Đăng kí:." style="color:#800080" name="send">&nbsp;
</td>
</tr>
</table>
</center>
</div>
</form>
</body>
</html>

============================end=================== =========

III. Làm trang login

tạo log.asp
============================begin================= ===========

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>HUNGDATDO - REG</title>
</head>
<body>
<%
submit=Request("submit")
if (submit=1) then
'kiem tra vao lan dau hay da submit
%>
<!--#include file="conf.asp"-->
<% err=0
ten=Request("ten")
matkhau=Request("matkhau")
set reg = Server.CreateObject("ADODB.RecordSet")
str="SELECT * FROM info;"
reg.LockType = 3
reg.open str,db
found=0
do while not reg.eof and not found=1
if reg("user")=ten then
'kiem tra tat ca cac record xem co user nao trung khong?
found=1
if not reg("pass")=matkhau then
'khi da tim dc user thi so sanh den mat khau
err=1
end if
end if
reg.movenext
loop
reg.close
set reg = Nothing
%>
<%
if found=0 then
Response.Write("Username khng t***7891;n t***7841;i, b***7841;n hy ch***7855;c ch***7855;n mnh nh***7853;p ***273;ng.")
else
if err=1 then
Response.Write("M***7853;t kh***7849;u ch***432;a ***273;ng.")
else
Response.Redirect "index.asp"
end if
end if
%>
<%end if%>
<form method="post" action="log.asp" name="myForm">
<input type="hidden" name="submit" value="1">
<div align="center">
<center>
<table border="0" style="border-collapse: collapse" bordercolor="#111111" width="40%" id="AutoNumber1">
<tr>
<td width="35%" align="right">UserName: </td>
<td width="65%">
<input maxlength="8" value="<%= ten%>" name="ten" size="10"></td>
</tr>
<tr>
<td width="35%" align="right">PassWord: </td>
<td width="65%">
<input type="password" name="matkhau" size="15" maxlength="12"></td>
</tr>
<tr>
<td width="35%" align="right"></td>
<td width="65%">
<input type="submit" value=".:Đăng nhập:." style="color:#800080" name="send">&nbsp;
</td>
</tr>
</table>
</center>
</div>
</form>
</body>
</html>

============================end=================== =========

bạn tạo thêm 1 file nữa là index.asp, sau khi đăng nhập thành công thì sẽ được chuyển đến file này. download toàn bộ các file có liên quan. Đây là cách đơn giản nhất, chưa thực hiện kiểm tra dữ liệu nhiều, mật khẩu chưa được mã hoá (download hàm mã hoá), các module đặt riêng rẽ trong từng file tuy dễ truy cập nhưng khó nâng cấp và bảo quản, v,v...Mời bạn ghé thăm http://c17.2ya.com của tôi để tham khảo thêm ý tưởng thiết kế. thân.

Bài viết của vũ đình hùng(hungdatdo@yahoo.com)
Tải bài viết
mấy cái asp và mdb
hàm mã hóa pass
fx500a viết 20:30 ngày 09/10/2018
úi, không có session hay cookies gì à? hic, em cũng đang chuối cái khoản đó, bác giúp em với...........
Yuris_revenge viết 20:37 ngày 09/10/2018
<%
dsn = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db.mdb")
set db = Server.CreateObject("ADODB.Connection")
db.open(dsn)
%>

Viết thế này thì hơi khó, vì ít host nào cho mình tạo dsn, hungdatdo nên xài Jet thì hơn ví dụ như test ở 1asphost thì sẽ báo lỗi ngay

Ở hai form reg và log có một số chỗ hơi bị dư
Shinichi Heroine viết 20:34 ngày 09/10/2018
có lòng nhiệt tình, nhưng cần trau dồi thêm về nhiều mặt
planet-save viết 20:22 ngày 09/10/2018
Quote Được gửi bởi Yuris_revenge
<%
dsn = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db.mdb")
set db = Server.CreateObject("ADODB.Connection")
db.open(dsn)
%>

Viết thế này thì hơi khó, vì ít host nào cho mình tạo dsn, hungdatdo nên xài Jet thì hơn ví dụ như test ở 1asphost thì sẽ báo lỗi ngay

Ở hai form reg và log có một số chỗ hơi bị dư
Nói như thế cũng đúng và cũng sai, tớ nghĩ tạo chủ đề này cho người chưa biết làm trên local thôi, vả lại nói về vấn đề host thì mỗi host một khác, kể cả vị tró để file.mdb nữa, nếu bạn làm trên host nào thì làm theo hướng dẫn của host đó.

Đúng là ở 2 form có chỗ dư ở phần
'kiem tra tat ca cac record xem co user nao trung khong?
mình cố tình làm như vậy thay vì loại bỏ những kí tự ' rồi dùng where

@Shinichi Heroine mong sẽ họa hỏi thêm dc ở U nhiều.
Bài liên quan
0