Chào mừng đến với Diễn đàn Dân Kế Toán - Kế toán tổng hợp thực tế.
Trang 1 của 3 123 CuốiCuối
Kết quả 1 đến 10 của 21
  1. #1
    Ngày tham gia
    Aug 2015
    Bài viết
    0

    Đăng nhập sai 5 lần chờ 15 phút

    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 không 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ì.[you] có ghé qua thì cũng thảo luận nhen.

  2. #2
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Đăng nhập sai 5 lần chờ 15 phút




    Trích dẫn Gửi 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 không 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ì.[you] 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.


    Mã:
    dem=dem+1
    If 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 +1
    Như 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) then
    msgbox " 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=0
    End If

  3. #3
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Đăng nhập sai 5 lần chờ 15 phút




    Trích dẫn Gửi 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.


    Mã:
    dem=dem+1
    If 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 +1
    Như 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) then
    msgbox " 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=0
    End 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á.

  4. #4
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Đăng nhập sai 5 lần chờ 15 phút




    Trích dẫn Gửi 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 không 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

  5. #5
    Ngày tham gia
    Nov 2015
    Bài viết
    2
    Ðề: Đăng nhập sai 5 lần chờ 15 phút




    Trích dẫn Gửi bởi phuyen89
    Mình vẫn không 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 hoặc hoãn lại

  6. #6
    Ngày tham gia
    Nov 2015
    Bài viết
    3
    Ðề: Đăng nhập sai 5 lần chờ 15 phút

    Cũng không 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:


    Mã:
    SaveSetting (appname, section, key, setting) : dùng ghi vào registry
    GetSetting(appname, section, key[, default]) : đọc giá trị từ registry
    DeleteSetting (appname, section[, key] ) : xoá giá trị trong registry
    GetAllSettings(appname, section) : Lấy hết giá trị của ứng dụng được lưu tại section

  7. #7
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Ðề: Đăng nhập sai 5 lần chờ 15 phút




    Trích dẫn Gửi bởi LoveBlue
    Cũng không 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:


    Mã:
    SaveSetting (appname, section, key, setting) : dùng ghi vào registry
    GetSetting(appname, section, key[, default]) : đọc giá trị từ registry
    DeleteSetting (appname, section[, key] ) : xoá giá trị trong registry
    GetAllSettings(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 tôi 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 không vào được (tức là có 3 lần nhập sai pass 5 lần) thì user đó không 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 hướng dẫn tôi với nhé. Thanhks.

  8. #8
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Đăng nhập sai 5 lần chờ 15 phút

    delay có nghĩa là sự chậm trễ,trì hoãn,vậy thì ở đây chắc nó có nghĩa là việc đăng nhập phải chậm lại,hoãn lại
    mình nghĩ là như vậy

  9. #9
    Ngày tham gia
    Dec 2015
    Bài viết
    0
    Ðề: Đăng nhập sai 5 lần chờ 15 phút

    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! :matdeu:

  10. #10
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Đăng nhập sai 5 lần chờ 15 phút




    Trích dẫn Gửi 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.


    Mã:
    dem=dem+1
    If 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 +1
    Như 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) then
    msgbox " 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=0
    End If
    Bác Love Blue đặt là Sleep(1800000) em tính mãi mà ra tới 30 phút,không biết là có tính nhầm không.(1800000/1000/60)=30 phút cơ.
    Cái mà Love Blue chỉ mình làm,mình xin Upload lại.http://www.mediafire.com/file/mdzmlni2hje/password.mdb
    Cái deplay mà Love dùng chỉ trì hoản sự đăng nhập thôi.Cũng rất tốt,nhung chưa đáp ứng với yêu cầu giống như là hình thức đăng nhập thường áp dụng với các diễn đàn
    -----------------------------------------------------------------------------------------



    Trích dẫn Gửi bởi LoveBlue
    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! :matdeu:
    Bác hướng dẫn vào trong một chút giùm đi ah.Việc tạo bảng thì ai cũng lam được nhưng làm sao nữa để cho nó liên kết với các bảng khi mà ta đăng nhập vào hay thoát ra là cả một vấn đề lớn với trinh độ của tụi em hiện tại đấy.

 

 
Trang 1 của 3 123 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •