[第一次机房收费系统]账号异常登录提醒

来源:互联网 发布:c语言匈牙利法则 编辑:程序博客网 时间:2024/04/28 22:18

前言


QQ在线的情况下在另一台手机上登录, 会有一个下线通知的提示。前几天用另一台手机登录QQ 的时候,提示了这条消息,这时候想正在做的机房收费系统能不能也加入这个功能呢?这样就可以防止机房上机账号被盗了。于是,展开了下面的研究。


QQ下线通知


这里写图片描述


正文


想到做这个防盗号提示后就开始想怎么实现这样的功能了,假设某同学用123的账号正在上机,再有人用123账号登录上机系统的时候就会提示消息。


我想这个时候可以在数据库中建个表,如果此卡号正在上机,再次登录的情况下把卡号和时间更新到数据表中。就先把这个表命名为FDaohao。


这里写图片描述


正在上机账号的信息在Online表中存放着,若有重复卡号登陆系统,则把卡号和时间更新到FDaohao数据表中,代码为:


 txtSQL1 = "select * from OnLine_Info where cardno='" & Trim(txtUserName.Text) & "'"Set mrc1 = ExecuteSQL(txtSQL1, MsgText1)If mrc1.EOF = False Then'    若此卡号正在使用中 txtSQL2 = "select * from FDaohao_Info"    Set mrc2 = ExecuteSQL(txtSQL2, MsgText2)'       将卡号,时间等信息放到FDaohao数据表中    mrc2.AddNew    mrc2.Fields(0) = Trim(txtUserName.Text)    mrc2.Fields(1) = Time    mrc2.Update    mrc2.Close        '反馈提示信息        MsgBox "此卡号正在使用中!", vbOKOnly + vbExclamation, "警告"    End End If

然后在主窗体界面中加一个timer控件和一个label空间。因为已经有一个时间控件是为了显示系统时间的,所以直接用了这个时间控件。时间为一秒刷新一次,若FDaohao表中有卡号和当前上机卡号一样的信息,就说明有异常登录,然后就在label控件中显示提示信息。


timer中代码如下:


txtSQL = "select * from FDaohao_Info where KNumber = '" & txtNumber.Text & "'"Set mrcFDH = ExecuteSQL(txtSQL, MsgText)    '连接FDaohao数据表,表中卡号等于当前登录卡号时    If mrcFDH.EOF = False Then        lblFDHtishi.Caption = "您的账号于" & mrcFDH.Fields(1) & vbCrLf _        & "在其他电脑上登录" & vbCrLf _        & "如非本人操作" & vbCrLf _        & "则密码可能已泄露" & vbCrLf _        & "点击下方按钮修改密码或忽略"        lbltixing.Caption = "修改密码"        lblhulue.Caption = "忽略"End If

这时候就可以实现异常登录信息提示了


账号为9426的同学正在上机的情况下再次登陆账号9426


这里写图片描述


就会显示此卡号正在使用中,并把卡号和异常登录时间同步到FDaohao表中。


这里写图片描述


这里写图片描述


这时候就会在主窗体的label控件中显示异常登陆提示,用户可以选择忽略或修改密码。


这里写图片描述


点击修改密码就会跳转到修改密码界面,而选择忽略,信息就会消失不见。在FDaohao数据表不管是点击修改密码还是忽略,都会删除此账号在表中的信息,因为这个时候用户已经看到了账号存在风险,提示的目的已经达到了。在timer空间下一秒刷新的时候,因为表中已经没有了此账号的信息,提示框就会消失。


这里写图片描述


点击修改密码代码:


Private Sub lbltixing_Click()    frmModifyPassword.Show    '打开修改密码界面 同时异常提醒全部关闭    lbltixing.Caption = ""    lblFDHtishi.Caption = ""    lblhulue.Caption = ""    txtsqlFDH = "select * from FDaohao_Info where KNumber='" & txtNumber.Text & "'"    Set mrcFDH = ExecuteSQL(txtSQL, MsgText)    Do While (mrcFDH.EOF = False)        '删除FDaohao表中此卡号的信息        mrcFDH.Delete        mrcFDH.MoveNext    LoopEnd Sub

点击忽略按钮代码:


Private Sub lblhulue_Click()      '点击忽略删除FDaohao表中本学号的信息     lbltixing.Caption = ""     lblFDHtishi.Caption = ""     lblhulue.Caption = ""     txtsqlFDH = "select * from FDaohao_Info where KNumber='" & txtNumber.Text & "'"     Set mrcFDH = ExecuteSQL(txtSQL, MsgText)         Do While (mrcFDH.EOF = False)         mrcFDH.Delete         mrcFDH.MoveNext     LoopEnd Sub

总结


以前敲学生信息管理系统的时候师父就说,只要是你想要的功能,好好去做都可以实现的,当时也没有什么太多特别想法,老老实实按照原程序做好后大概的优化了一下。而这次的机房改动挺多的,这些小功能的实现,让自己有了更大的信心,同时也希望大家能够喜欢这些小小的东西。


2 0
原创粉丝点击