声明:以下内容只有当你登录到一个username同时,学生不能申请多次登录。









        说是BUG,事实上这也不是一个BUG,仅仅是想出一个办法,解决一个大家好多人都没有解决的问题。以下就给大家具体讲讲究竟是什么样的问题。什么样的解决的方法:





        在机房收费系统中的用户登录功能,我们可以让一个用户在不同的电脑上同一时候登录吗?我相信大家跟我的想法都差点儿相同,一个用户当然不能在不同的电脑上同一时候登录!那么问题就来了,假设用户已经登录系统,突然断电或者死机重新启动。那么用户还能登录我们的系统吗?肯定能啊!

不就是断电吗?为什么不能继续登录了呢?

                                  





        以下我们先看一下我们的数据库,当username为"1"的用户登录系统的时候,会往数据库中插入一条正在值班的工作记录,如图所看到的。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcnk1MTM3MDU2MTg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">





        同一时候,正是由于有了这条记录,我们在用户登录之前就应该推断"1"这个用户当前是否正在值班。数据库中有一条正在值班的记录,那么就应该提示"该用户正在值班!

",这样就限制了username为"1"的用户在不同的电脑上同一时候登录。







        正常的情况向,当一个用户登录系统。系统会往数据库中插入一条正在值班的工作记录。当用户正常退出系统的的时候,系统会将该用户正在值班的工作记录,更改状态。

如图:

        





        假设用户已经登录系统,突然断电或者死机重新启动。用户不能正常的退出系统。系统也就不能将正在值班的记录更改为下班的状态!

这个时候。我们再登录用户"1"。系统就会提示我们"该用户正在值班!",我们就再也登录不上去了,这个时候怎么办呢?仅仅能去更改后台数据库的数据。可是这是一个很麻烦也是一个很不适用的做法!





        以下看看我的登录,当数据库中已经存在一条用户"1"正在值班的记录的时候,系统会先提示我们"该用户正在值班!

",接着跳转到还有一个新的登录页面,如图。

我为系统设置了一个超级password!当输入超级password正确的时候。我们就能再次登录系统!







        超级password是自己设置的,能够写在代码里,也能够写在配置文件中。

这个方案让我们攻克了电脑断电,死机重新启动用户不能再次登录的问题!

可是,假设我们知道了超级password。我们也就能够实现同一个用户在不同的电脑上同一时候登录。所以,有利也有弊!

可是我们能够让超级password变得非常机密,一般人不知道。仅仅有超级管理员才知道!这种话,勉强也能说得过去...

经过上面简单的解说。相信大家都明确了我的超级password的用处吧!对于这一个问题。假设大家还有不一样的理解,能够私下跟我讨论......

版权声明:本文博主原创文章,博客,未经同意不得转载。

房费制 之 登录BUG的更多相关文章

  1. 房费制 它 结账BUG

    声明:以下内容仅仅是对在桌子上的卡与卡表的后面,适合学生的表!     最近,我们已经开始做VB.NET系统重构版,在这里跟大家聊聊我在机房收费系统中发现的漏洞. 在机房收费系统中有这样一个窗口--结 ...

  2. 一个struts2登录bug的解决

    点登录的时候,在url后面总会加上一个;jsessionid=xxx 使找不到页面 的404 Bug ,百思不得其解,最后终于找到解决方案,实验最终成功解决了这个bug,下面是解决方案 1,增加依赖  ...

  3. 房费制VB版本(一个)——系统分析

          首先.我们先回答两个个问题:         1.机房收费系统"是什么"?         2.机房收费系统应该"干什么"?        我的回答 ...

  4. 百度糯米iOSclient登录BUG

    环境 设备:iphone5s 网络:WIFI App版本号: 操作步骤 1.进入登录界面 2.输入手机号 3.点击[获取验证码],等待接收验证码后 4.点击[X]退出登录界面 5.反复1-2-3,提示 ...

  5. vb.net版本房收费系统改造

    房费制开始重建的最终版本. 前几天.刚刚看完三层的视频,在视频中具体的解说了一个登录功能.天真的我,当时以为三层结构是那么的简单,所以我草草地做完总结之后,就非常快就開始机房收费系统的重构了.但是谁想 ...

  6. BugTracker 加入发Mail的功能

    BugTracker部署好之后,发现增加bug不能mail提醒.于是补上这个功能记录在此,方法是次要的,主要是找到地方.需要3步.吐槽下Asp的代码风格看的真心蛋疼.... 一.发送mail(主要是找 ...

  7. linux内核设计模式

    原文来自:http://lwn.net/Articles/336224/ 选择感兴趣内容简单翻译了下: 在内核社区一直以来的兴趣是保证质量.我们需要保证和改善质量是显而易见的.但是如何做到却不是那么简 ...

  8. 拥抱高效、拥抱 Bugtags 之来自用户的声音(五)

    Bugtags使用心得(创业公司场景篇) ——成都嘿嘿科技有限公司 作者:小花 一.产品定义 关于手机客户端产品(APP)的 bug 提交.监测及管理且具有团队协作性质的系统. 二.使用环境 公司:初 ...

  9. linux 踢出用户方法

    linux系统root用户可强制踢制其它登录用户, 首先以root登录以便查看全部的在线用户信息,可用w命令查看登录用户信息 强制踢人命令格式:pkill -kill -t tty 解释: pkill ...

随机推荐

  1. mongodb分页优化

    现在参与一个项目的开发,需要用java查询mongodb数据库,在这里分页用的skip sort 和limit结合,查询语句如下(已经在相关字段建立索引) DBCursor cursor = coll ...

  2. 【OpenCV新手教程之十三】OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/26157633 作者:毛星云(浅墨) ...

  3. 关于split与StringTokenizer的理解

    关于split与StringTokenizer的理解 一.split    依据匹配给定的正則表達式来拆分此字符串.此方法返回的数组包括此字符串的子字符串,每一个子字符串都由还有一个匹配给定表达式的子 ...

  4. TCP/IP协议栈源码图解分析系列10:linux内核协议栈中对于socket相关API的实现

    题记:本系列文章的目的是抛开书本从Linux内核源代码的角度详细分析TCP/IP协议栈内核相关技术 轻松搞定TCP/IP协议栈,原创文章欢迎交流, byhankswang@gmail.com linu ...

  5. linux下查看进城(ps)的方法 与 杀死进程(kill)的N种方法

    PS查看进程 inux上进程有5种状态: 1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 3. 不可中断(收到信号不唤醒和不可运行, 进程必 ...

  6. 在VS2012中使用GitHub

    注册GitHub账号(DeanZhouLin) https://github.com/ 向GitHub中添加一个仓库(Test) *创建完成后,记录该仓库的地址:https://github.com/ ...

  7. jquery下php与ajax的互传数据(json格式)自我总结

    研究了一整天的json数据与ajax的数据传输,现在进行一个小的自我总结,仅供参考 1.关于ajax的认识 $.ajax(),是jquery下包装好的一个函数:参考地址:http://www.w3sc ...

  8. php中页面跳转部分方法论述

    假设当前页面:http://localhost:80/index.php 1.include echo “include t1.php”; 跳转后,url地址栏http://localhost:80/ ...

  9. V5

    系统设置--关于手机--版本号点5下--进去开发模式--打开开发选项--打开USB调试.然后在连接第三方助手软件 http://bbs.ztehn.com/thread-19037-1-1.html

  10. 利用SVNKit进行版本库的树的导出

    public List searchByTree(String userName,String passwd,String SVNServerUrl,String dirUrl){ //这里有点像 s ...