# encoding: utf-8

# Creator:耿亚月   Creation time:2017-1-1
# Modifier:耿亚月 Modification time:2017-1-2
#filename:CheckLogin import xlrd
import os
import getpass #查看账号是否注册过
def CheckRegister(username,allusers):
for user in allusers:
user = user.strip().split(',')
if username == user[0]:
time = 4
register = 'yes'
break
else:
register = 'no'
if register == 'yes':
return 'yes'
else:
return 'no' #查看账号是否被锁定过
def CheckLocked(username,lockedusers):
for user in lockedusers:
user = user.strip().split(',')
if username == user[0]:
locked = 'yes'
break
else:
locked = 'no'
if locked == 'yes':
return 'yes'
else:
return 'no' #查看是否可以登陆
def CheckLogin(username,allusers):
for user in allusers:
user = user.strip().split(',')
if username == user[0] and password == user[1]:
time = 4
login = 'yes'
break
else:
login = 'no'
if login == 'yes':
return 'yes'
else:
return 'no' # path = os.getcwd()
path = 'E:\\code\\exercise\\Day1\\CheckLogin'
AllUsers = open(path+'\\AllUsers.txt')
LockedUsers = open(path+'\\LockedUsers.txt')
allusers = AllUsers.readlines()
lockedusers = LockedUsers.readlines()
AllUsers.close()
LockedUsers.close() time = 0
pas = ''
while time < 3:
username = input('username:')
password = input('password:')
# password=getpass.getpass('password:') #查看账号是否注册过
if CheckRegister(username,allusers) == 'no':
print('there is no this username, please register in first')
break
else:
#查看账号是否被锁定过
if CheckLocked(username,lockedusers) == 'yes':
print('this ID has been locked')
break
else:
#查看是否可以登陆
if CheckLogin(username,allusers) == 'yes':
print('welcome user {name} login...'.format(name=username))
break
else:
time += 1
if time < 3:
print('Invalid username or password!')
else:
print('you put username or password over 3 time,this ID has been locked')
#将输错超过3次的用户名写入到ockedLUser文件里
LockedUsers = open(path+'\\LockedUsers.txt','a')
LockedUsers.write('\n'+username + ',' + password )
LockedUsers.close()

CheckLogin的更多相关文章

  1. 遇到困难 jsp代码onclick="javascript:return(checklogin());"报错

    <script language="javascript"> function checklogin() { if (document.getElementById(& ...

  2. jsp页面onsubmit=&quot;return checklogin();&quot;该解决方案给

    选择Window->Preferences->MyEclipse->Validation 去掉方框里的对号,然后Apply 然后点击Yes->然后再点击ok->Yes,足 ...

  3. SSH实战 · 唯唯乐购项目(上)

    前台需求分析 一:用户模块 注册 前台JS校验 使用AJAX完成对用户名(邮箱)的异步校验 后台Struts2校验 验证码 发送激活邮件 将用户信息存入到数据库 激活 点击激活邮件中的链接完成激活 根 ...

  4. netcore - MVC的ActionFilter的使用

    经过一周的时间没有分享文章了,主要是在使用.netcore做一个小的项目,项目面向大众用户的增删改查都做的差不多了,打算本周在云服务器上部署试试,很期待,也希望上线后大家多多支持:以上纯属个人废话,来 ...

  5. cookie——小甜品

    Cookie最早是网景公司的前雇员Lou Montulli在1993年3月的发明.Cookie英文意指饼干,不过在电脑术语中它可不像饼干那么简单.简单的说,Cookie就是服务器暂存放在你计算机上的一 ...

  6. shiro在springmvc里面的集成使用【转】

    <dependency> <groupId>commons-collections</groupId> <artifactId>commons-coll ...

  7. Shiro安全框架入门篇(登录验证实例详解与源码)

    转载自http://blog.csdn.net/u013142781 一.Shiro框架简单介绍 Apache Shiro是Java的一个安全框架,旨在简化身份验证和授权.Shiro在JavaSE和J ...

  8. 分享一个html+js+ashx+easyui+ado.net权限管理系统

    EasyUI.权限管理 这是个都快被搞烂了的组合,但是easyui的确好用,权限管理在项目中的确实用.一直以来博客园里也不少朋友分享过,但是感觉好的要不没源码,要不就是过度设计写的太复杂看不懂,也懒得 ...

  9. 在ASP.NET Core中使用Angular2,以及与Angular2的Token base身份认证

    注:下载本文提到的完整代码示例请访问:How to authorization Angular 2 app with asp.net core web api 在ASP.NET Core中使用Angu ...

随机推荐

  1. JavaScript 中 map、foreach、reduce 间的区别

    一直对map.foreach.reduce这些函数很是生疏,今天看underscorejs时好好研究了一下,一研究我就更懵了,这不是一样嘛,都是遍历,所以我就去知乎找了一下,整理出了比较好的几个说法. ...

  2. js中arguments的用法

    了解这个对象之前先来认识一下javascript的一些功能: 其实Javascript并没有重载函数的功能,但是Arguments对象能够模拟重载.Javascrip中国每个函数都会有一个Argume ...

  3. 立即执行函数: (function(){...})() 与 (function(){...}()) 有什么区别?

    没有区别. function foo() {...} // 这是定义,Declaration:定义只是让解释器知道其存在,但是不会运行. foo(); // 这是语句,Statement:解释器遇到语 ...

  4. Android first --- 页面跳转及数据传递

    页面跳转即数据传递 创建第二个界面Acivity *需要在清单文件中添加配置一个Actuvity标签 标签中如果带有这个子节点,则会在Android中添加一个快捷图标 <intent-filte ...

  5. iOS改变字母的大小写

    使用lowercaseString,uppercaseString -(void)test{ NSString * str = @"person"; NSString * str1 ...

  6. phprpc的简单使用

    PHPRPC 是一个轻型的.安全的.跨网际的.跨语言的.跨平台的.跨环境的.跨域的.支持复杂对象传输的.支持引用参数传递的.支持内容输出重定向的.支持分级错误处理的.支持会话的.面向服务的高性能远程过 ...

  7. 用jQuery基于原生js封装的轮播

    我发现轮播在很多网站里面都用到过,一个绚丽的轮播可以为网页增色不少,最近闲来无事,也用原生js封装了一个轮播,可能不像网上的插件那么炫,但是也有用心去做.主要用了闭包的思想.需要传递的参数有:图片地址 ...

  8. [转]SpringMVC拦截器简单教程

    亲测有用,地址: http://blog.csdn.net/tjcyjd/article/details/7498236

  9. Java多线程总结之线程安全队列Queue

    在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列.Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非 ...

  10. Linux 内核编译

    注:该文章部分内容摘录自以下链接. http://www.cnblogs.com/zhunian/archive/2012/04/04/2431883.html 创建内核的第一步是创建一个 .conf ...