1.3.9 Thủ tục và hàm người dùng
Cũng như các ngôn ngữ lập trình khác, Cũng như các ngôn ngữ lập trình khác, VBScript cho phép người dùng định nghĩa và VBScript cho phép người dùng định nghĩa và sử dụng các thủ tục, hàm. Nhờ vậy chương sử dụng các thủ tục, hàm. Nhờ vậy chương trình có thể chia thành các module nhỏ tạo nên trình có thể chia thành các module nhỏ tạo nên cấu trúc lập trình sáng sủa (phương pháp chia cấu trúc lập trình sáng sủa (phương pháp chia
để trị) để trị)
1.3.9.1 Thủ tục1.3.9.1 Thủ tục
Thủ tục thực hiện một nhóm các câu lệnh. Để viết một Thủ tục thực hiện một nhóm các câu lệnh. Để viết một thủ tục chúng ta theo cấu trúc sau:
thủ tục chúng ta theo cấu trúc sau:
<%Sub TenThuTuc(Tham so)<%Sub TenThuTuc(Tham so) ‘ ‘ Phần thân của thủ tụcPhần thân của thủ tục
End SubEnd Sub %>%>
Ví dụ sau đây xây dựng chương trình đăng nhập gồm Ví dụ sau đây xây dựng chương trình đăng nhập gồm 2 file: Form.asp (hiển thị form để người dùng nhập 2 file: Form.asp (hiển thị form để người dùng nhập username và password), Xulyform.asp (xử lý form, username và password), Xulyform.asp (xử lý form, nếu username=”test” và password=”test” thì thông báo nếu username=”test” và password=”test” thì thông báo đăng nhập thành công, nếu không thì thông báo đăng đăng nhập thành công, nếu không thì thông báo đăng nhập thất bại). File Xulyform.asp sẽ viết thủ tục và gọi nhập thất bại). File Xulyform.asp sẽ viết thủ tục và gọi
thủ tục này: thủ tục này:
Form.aspForm.asp <html><html> <body><body>
<form method="post" action="xulyform.asp"><form method="post" action="xulyform.asp"> <input type="text" name="user"><input type="text" name="user">
<input type="password" name="pass"><input type="password" name="pass"> <input type="submit" name="submit"><input type="submit" name="submit"> </form></form>
</body></body> </html></html>
Xulyform.aspXulyform.asp
<%Sub CheckUser(username,password)<%Sub CheckUser(username,password)
if (username<>"test") or (password <> "test") thenif (username<>"test") or (password <> "test") then response.write "Dang nhap that bai!"response.write "Dang nhap that bai!"
else else
response.write "Dang nhap thanh cong!"response.write "Dang nhap thanh cong!" end ifend if
End SubEnd Sub %>%>
<% dim a, b<% dim a, b
a=request.form("user")a=request.form("user") b=request.form("pass")b=request.form("pass")
1.3.9.2 Hàm1.3.9.2 Hàm 1.3.9.2 Hàm
Hàm khác với thủ tục là nó trả về một kết quả. Hàm khác với thủ tục là nó trả về một kết quả. Để viết một hàm chúng ta viết theo cấu trúc Để viết một hàm chúng ta viết theo cấu trúc
sau: sau:
<%Function TenFunction(tham so)<%Function TenFunction(tham so) ‘ ‘ Phần nội dung của hàmPhần nội dung của hàm
End FunctionEnd Function %>%>
Chú ý trong nội dung của hàm bao giờ cũng Chú ý trong nội dung của hàm bao giờ cũng phải có một lệnh trả về kết quả:
phải có một lệnh trả về kết quả: TenFunction=...TenFunction=...
Với bài toán đăng nhập ở trên chúng ta có thể viết lại Với bài toán đăng nhập ở trên chúng ta có thể viết lại như sau (file xulyform.asp dùng hàm)
như sau (file xulyform.asp dùng hàm)
Form.aspForm.asp <html><html> <body><body>
<form method="post" action="xulyform.asp"><form method="post" action="xulyform.asp"> <input type="text" name="user"><input type="text" name="user">
<input type="password" name="pass"><input type="password" name="pass"> <input type="submit" name="submit"><input type="submit" name="submit"> </form></form>
Xulyform.aspXulyform.asp
<%Function CheckUser(username,password)<%Function CheckUser(username,password) if (username<>"test") or (password <> "test") if (username<>"test") or (password <> "test")
then then CheckUser="False"CheckUser="False" else else CheckUser="True"CheckUser="True" end ifend if
End FunctionEnd Function %>%>
<%<% dim adim a
a=CheckUser(request.form("user"),request.fora=CheckUser(request.form("user"),request.for m("pass")) ‘ gọi hàm
m("pass")) ‘ gọi hàm if a="True" then if a="True" then
response.write "Dang nhap thanh cong"response.write "Dang nhap thanh cong" elseelse
response.write "Dang nhap that bai"response.write "Dang nhap that bai" end ifend if