Drummond

New Member
Thấy các diễn đàn chỉ cho đăng nhạp 5 lần,nếu sai thì 15 phút sau mới cho đang nhập lại.Thế thì mình nghĩ ra ý tương rằng,cái này chúng ta có thể áp dụng trong Form đăng nhập được không.Điều kiện: Đăng nhập sai 5 lần thì dù có đăng nhập đúng đi chăng nữa cũng bất vào đuợc CSDL.Không tính tới trường hợp đăng nhập quá số lần sẽ thoát ah nghen Khi người dùng tắt CSDL rồi đăng nhập lại thì phải cách nhau 15 hay bao nhiêu phút là tuỳ vào mình đặt.Như thế thì phải làm những gì.Khách có ghé qua thì cũng thảo luận nhen.
 

Fillmore

New Member
Trích:
Nguyên văn bởi phuyen89 Thấy các diễn đàn chỉ cho đăng nhạp 5 lần,nếu sai thì 15 phút sau mới cho đang nhập lại.Thế thì mình nghĩ ra ý tương rằng,cái này chúng ta có thể áp dụng trong Form đăng nhập được không.Điều kiện: Đăng nhập sai 5 lần thì dù có đăng nhập đúng đi chăng nữa cũng bất vào đuợc CSDL.Không tính tới trường hợp đăng nhập quá số lần sẽ thoát ah nghen Khi người dùng tắt CSDL rồi đăng nhập lại thì phải cách nhau 15 hay bao nhiêu phút là tuỳ vào mình đặt.Như thế thì phải làm những gì.Khách có ghé qua thì cũng thảo luận nhen.
Xin giới thiệu bạn hàm Sleep( số miligiây) dùng để delay chương trìnhĐể dùng hàm nay, bạn phải khai báo API.Tạo 1 module và khai báo API sau:public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)Trong form đăng nhập, bạn tạo 1 biến để đếm. Sau mỗi lần nhập pass nó sẽ đếm lên 1. Code: dem=dem+1If Dem mod 5 =0 then MsgBox "Sai Pass 5 lan, ban phai cho 15 phut moi duoc dang nhap" Sleep (1800000)End If-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-Bạn cũng có thể lợi dụng timer của Form ( set interval 1000 )để đếm giờ bằng cách tạo 1 biến demgiay. Khi nhập pass sai lần thứ 5, thì demgiay=0. Trong sự kiện timer , demgiay =demgiay +1Như vậy. bắt đầu kiểm tra pass, bạn đặt điều kiện:If (dem mod 5 =0 ) and (demgiay < 180 =0) thenmsgbox " bạn nhap sai pass 5 lan, ban phai doi 15 phut moi nhap lai duoc, thoi gian con lai : " & 180 - demgiay & "giay"else ' doan code kiem tra pass dem = dem +1 demgiay=0End If
 
Trích:
Nguyên văn bởi LoveBlue Xin giới thiệu bạn hàm Sleep( số miligiây) dùng để delay chương trìnhĐể dùng hàm nay, bạn phải khai báo API.Tạo 1 module và khai báo API sau:public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)Trong form đăng nhập, bạn tạo 1 biến để đếm. Sau mỗi lần nhập pass nó sẽ đếm lên 1. Code: dem=dem+1If Dem mod 5 =0 then MsgBox "Sai Pass 5 lan, ban phai cho 15 phut moi duoc dang nhap" Sleep (1800000)End If-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-' + '-Bạn cũng có thể lợi dụng timer của Form ( set interval 1000 )để đếm giờ bằng cách tạo 1 biến demgiay. Khi nhập pass sai lần thứ 5, thì demgiay=0. Trong sự kiện timer , demgiay =demgiay +1Như vậy. bắt đầu kiểm tra pass, bạn đặt điều kiện:If (dem mod 5 =0 ) and (demgiay < 180 =0) thenmsgbox " bạn nhap sai pass 5 lan, ban phai doi 15 phut moi nhap lai duoc, thoi gian con lai : " & 180 - demgiay & "giay"else ' doan code kiem tra pass dem = dem +1 demgiay=0End If
Ý của PHUYEN89 là khi đăng nhập 5 lần sai pass là chương trình tự thoát (đếm đến 5 là application.quit) và phải 15 phút sau người dùng mới có thể vào lại chương trình được.Ý của LoveBlue là đếm đến 5, chương trình vẫn đang chạy nhưng delay.Vấn đề của PHUYEN89 khó quá.
 

lananh_VN

New Member
Trích:
Nguyên văn bởi haquocquan Ý của PHUYEN89 là khi đăng nhập 5 lần sai pass là chương trình tự thoát (đếm đến 5 là application.quit) và phải 15 phút sau người dùng mới có thể vào lại chương trình được.Ý của LoveBlue là đếm đến 5, chương trình vẫn đang chạy nhưng delay.Vấn đề của PHUYEN89 khó quá.
Mình vẫn bất hiểu được nghĩa sâu xa của từ delay là gì nữa.haquocquan giải nghĩa giùm them nha
 

xay_za

New Member
Trích:
Nguyên văn bởi phuyen89 Mình vẫn bất hiểu được nghĩa sâu xa của từ delay là gì nữa.haquocquan giải nghĩa giùm them nha
Dịch nghĩa thì chịu. Nhưng nôm na là: tạm dừng hay hoãn lại
 

hanhoc411

New Member
Cũng bất khó lắm. Mình giới nói sơ giải thuật nhé, còn bạn hiện thực ;;) Khi đăng nhập 5 lần, chương trình sẽ lưu thời gian hệ thống + số lần đăng nhập vào registry, sau đó thoát ra.Khi log vào. Đầu tiên nó kiểm tra lý do thoát chương trình có phải do sai pass 5 lần không? Nếu phải thì từ đó tới thời gian hiện tại của hệ thống quá 15 phút chưa? Nếu chưa thì thông báo chờ thêm xx phút. Thoát ra. Nếu quá 15 phút thì reset biến lưu trong registry về 0, cho đăng nhập lại từ đầu.Sẵn đây giới thiệu với các bạn 4 hàm dùng thao tác với registry: Code: SaveSetting (appname, section, key, setting) : dùng ghi vào registryGetSetting(appname, section, key[, default]) : đọc giá trị từ registryDeleteSetting (appname, section[, key] ) : xoá giá trị trong registryGetAllSettings(appname, section) : Lấy hết giá trị của ứng dụng được lưu tại section
 
Trích:
Nguyên văn bởi LoveBlue Cũng bất khó lắm. Mình giới nói sơ giải thuật nhé, còn bạn hiện thực ;;) Khi đăng nhập 5 lần, chương trình sẽ lưu thời gian hệ thống + số lần đăng nhập vào registry, sau đó thoát ra.Khi log vào. Đầu tiên nó kiểm tra lý do thoát chương trình có phải do sai pass 5 lần không? Nếu phải thì từ đó tới thời gian hiện tại của hệ thống quá 15 phút chưa? Nếu chưa thì thông báo chờ thêm xx phút. Thoát ra. Nếu quá 15 phút thì reset biến lưu trong registry về 0, cho đăng nhập lại từ đầu.Sẵn đây giới thiệu với các bạn 4 hàm dùng thao tác với registry: Code: SaveSetting (appname, section, key, setting) : dùng ghi vào registryGetSetting(appname, section, key[, default]) : đọc giá trị từ registryDeleteSetting (appname, section[, key] ) : xoá giá trị trong registryGetAllSettings(appname, section) : Lấy hết giá trị của ứng dụng được lưu tại section
LoveBlue cho hỏi thêm một chút nhé: thực ra sau một thời (gian) gian tui thấy chủ đề này cũng có cái hay. Cho nên đang định có ý tưởng thế này:Một user: nếu 3 lần bất vào được (tức là có 3 lần nhập sai pass 5 lần) thì user đó bất thể vào được nữa, các user khác vẫn vào được bình thường. Và sau đó, để vào được, người quản trị sẽ có lệnh cho phép người đó tiếp tục vào chương trình.LoveBlue chỉ dẫn tui với nhé. Thanhks.
 

kudarka_1

New Member
vấn đề này mình cũng đang thắc mắc,mà bạn có biết làm thế nào để bất phải đợi không?
 

hoa_cuctrang10

New Member
delay có nghĩa là sự chậm trễ,trì hoãn,vậy thì ở đây chắc nó có nghĩa là chuyện đăng nhập phải chậm lại,hoãn lạimình nghĩ là như vậy
 
Giờ mới nghĩ ra, thật lẩm cẩm. Chỉ cần tạo 1 table lưu lịch sử đăng nhập bao gồm Loginhistory(UserName, timer, loginCouter)Mỗi khi bạn nhấn OK, nó sẽ ghi vào table này 1 dòng với loginCouter tăng dần.Như vậy nếu bị out ra, nó sẽ so sánh với thời gian sau cùng của user đó và loginCouter là được! Không cần gì dùng đến hàm ghi registry!
 

Các chủ đề có liên quan khác

Top