实现用户登录并且输入错误三次后锁定该用户

我的测试环境,win7,python3.5.1

提示输入用户名,和密码

判断是否被锁定

判断用户名和密码是否匹配

输入错误三次,账号被锁定

思路

代码块

name = 'alex' #正确的用户名

passwd = '123456' #正确的密码

lock_usr = [] #锁定账号列表

for i in range(0,3):

usr_name = input("用户名:")

usr_passwd = input("密码:")

if usr_name == name and usr_passwd == passwd:

print("玩命加载中...")

break

elif name != usr_name or passwd != usr_passwd:

if i < 2:

print("用户名密码错误,请重新输入!")

else:

lock_usr.append(usr_name) #将输入错误三次的的账号添加到锁定列表中

print("对不起!机会只有三次,您的账号密码被锁定")

elif usr_name in lock_usr:

print("该账号已锁定,请解锁后登陆")

PS:下面在通过c#实现密码输入三次错误后锁定用户功能

#region 密码输入三次错误后锁定用户功能

#region 增加错误次数的方法

///

///增加错误次数的方法

///

private void IncErrorTime()

{

string ConnStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;

using (SqlConnection conn = new SqlConnection(ConnStr))

{

using (SqlCommand updateCmd = conn.CreateCommand())

{

updateCmd.CommandText = "update T_Admin set errortime=errortime+1 whereUsername=@username";

updateCmd.Parameters.Add(new SqlParameter("username", cmbuserName.Text));

conn.Open();

updateCmd.ExecuteNonQuery();

}

}

}

#endregion

#region 错误次数清0

///

///错误次数清0

///

private void NotErrorTime()

{

string ConnStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;

using (SqlConnection conn = new SqlConnection(ConnStr))

{

using (SqlCommand updateCmd = conn.CreateCommand())

{

updateCmd.CommandText = "update T_Admin set errortime=0 whereUsername=@username";

updateCmd.Parameters.Add(new SqlParameter("username", cmbuserName.Text));

conn.Open();

updateCmd.ExecuteNonQuery();

}

}

}

#endregion

#region 密码错误3次,记录当前时间加30分钟

///

///密码错误3次,记录当前时间加30分钟

///

private void IncLoginTime()

{

string ConnStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;

using (SqlConnection conn = new SqlConnection(ConnStr))

{

using (SqlCommand updateCmd = conn.CreateCommand())

{

updateCmd.CommandText = "update T_Admin set logintime=@logintime whereUsername=@username";

DateTime logintime = DateTime.Now.AddMinutes(30);

updateCmd.Parameters.Add(new SqlParameter("username", cmbuserName.Text));

updateCmd.Parameters.Add(new SqlParameter("logintime", logintime.ToString()));

conn.Open();

updateCmd.ExecuteNonQuery();

}

}

}

#endregion

#region 按钮事件判断用户登录3次失效后锁定用户30分钟

private void BtnClike()

{

string username = cmbuserName.Text;

string password = txtPwd.Text;

string ConnStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;

using (SqlConnection conn = new SqlConnection(ConnStr))

{

using (SqlCommand cmd = conn.CreateCommand())

{

cmd.CommandText = "select * from T_Admin whereusername=@username";

cmd.Parameters.Add(new SqlParameter("username", username));

conn.Open();

using (SqlDataReader reader = cmd.ExecuteReader())

{

if (reader.Read())

{

//用户存在

string dbpassword = reader.GetString(reader.GetOrdinal("password"));

DateTime logintime = reader.GetDateTime(reader.GetOrdinal("logintime"));

//判断当前时间是是服务器允许登录时间

if (logintime > DateTime.Now)

{

MessageBox.Show("一定时间内禁止登录");

return;

}

//如果密码正确

if (dbpassword == txtPwd.Text)

{

NotErrorTime();

MessageBox.Show("登录成功!");

}

//如果密码错误

else

{

int errortime = reader.GetInt32(reader.GetOrdinal("errortime"));

if (errortime >= 2)

{

MessageBox.Show("密码错误次数太多!");

IncLoginTime();

NotErrorTime();

return;

}

MessageBox.Show("密码错误!");

IncErrorTime();//密码错误,次数加1

}

}

else//用户名不存在

{

MessageBox.Show("用户名不存在!");

return;

}

}

}

}

}

#endregion

#endregion

总结

以上所述是小编给大家介绍的Python实现用户登录并且输入错误三次后锁定该用户,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

python输入错误提示再次输入_Python实现用户登录并且输入错误三次后锁定该用户...相关推荐

  1. python练习—用户登录界面输入验证码测试

    用户登录界面输入验证码测试--Python import random s="qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234 ...

  2. python123不能登录_python用户登录,密码错误3次则锁定

    需求: 1.输入用户名密码 2.认证成功后显示欢迎信息 3.输错三次后锁定 实现思路: 1.判断用户是否在黑名单,如果在黑名单提示账号锁定. 2.判断用户是否存在,如果不存在提示账号不存在. 3.判断 ...

  3. python编写一个登陆验证程序_Python实现简单登录验证详解

    本文实例为大家分享了简单的Python登录验证,供大家参考,具体内容如下 编写登录接口 要求:1.输入用户名密码 2.认证成功后显示欢迎信息 3.输错三次后锁定 #coding=utf-8 __aut ...

  4. Sql Server 解决“用户登录失败,错误编18456”

    Sql Server 解决"用户登录失败,错误编号18456" 1.说明 2.其他错误信息 排错分析 1.说明 因密码或用户名错误而使身份验证失败并导致连接尝试被拒时,类似以下内容 ...

  5. mysql用户登录错误18456_SQL SERVER 2005 用户登录时报18456错误

    SQL SERVER 2005 用户登录时报18456错误 [问题] 最近突然发现SQL SERVER 身份验证方式无法正常登录了,总是报18456错误,而windows 用户可以正常登录. [解决方 ...

  6. python错误提示库没有注册_SpringBoot实现登录注册常见问题解决方案

    一.用户名密码都正确的情况下被登录拦截器拦截 控制台报错:org.apache.ibatis.executor.ExecutorException: A query was run and no Re ...

  7. python对文件操作的相关函数_python文件操作的相关函数深入理解Django中内置的用户认证...

    前言 本文主要给大家介绍了关于Django中内置用户认证的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 认证登陆 在进行用户登陆验证的时候,如果是自己写代码,就必须要先查 ...

  8. c语言程序错误提示一个找不到,C语言编辑程序出现错误提示.doc

    C语言编辑程序出现错误提示 Turbo?C?2.0编译错误信息fgh1986% (2007-06-19 21:40:46) 标签: 分类: Turbo C(V2.0)编译错误信息编译错误信息等简易说明 ...

  9. c语言中的错误提示,C语言20条编程中遇到的错误提示.doc

    C语言20条编程中遇到的错误提示 1. 代码: 编译器提示错误:error: else without a previous if 错误原因解读:'else'的前面没有匹配的'if' 2. 代码: 编 ...

最新文章

  1. 在OpenWrt中上传文件至路由器
  2. 【linux家常菜】redhat 6.5 安装yum
  3. WEB前端 深入了解JavaScript ajax—XHR对象
  4. Android笔记 style样式
  5. 【Flink】 producer attempted to use a producer id which is not currently assigned to its transaction
  6. 注释不能自动设置时间_微波炉维修|微波炉能加热食品,但是到了设定时间,不能自动断电。...
  7. 新浪2017校园招聘---C++后台研发
  8. 关于Jqueryweui 的select联动用法
  9. Javascript设计模式-18-状态模式
  10. Java 对上传文件后缀格式的校验
  11. GitHub下载提速
  12. python爬表情包_【从零开始写爬虫一】批量下载表情包
  13. lua pairs与ipairs区别
  14. EventSource+eggjs
  15. 图形学(3)光栅图形学的直线绘制(下)
  16. 雷军亲自打造的套餐了解下:用多少付多少
  17. 手机吃鸡语音服务器异常是怎么回事,《绝地求生》新版本里实用功能介绍 卡语音怎么解决...
  18. 分分钟带你读懂-ButterKnife-的源码
  19. 《道德经》第四十三章
  20. 1的阶乘到100的阶乘之和

热门文章

  1. python 单词长度_用python手刃leetcode(58):最后一个单词的长度【简单题】
  2. ospf配置命令_思科设备 OSPF 的相关知识点
  3. html5 职工入职后台管理系统_10个酷炫的后台模板
  4. c调用python接口_通过Python自带C/C++接口实现python与c/c++相互调用
  5. 时间复杂度和空间复杂度探究
  6. mysql循环建表_MySQL 开发准则(总结自阿里巴巴开发手册)
  7. 微赞dataconfig.php,php生成微信jssdk wx.config参数,调用js接口
  8. RS232和RS485
  9. 微信小程token_微信小程序url与token设置详解
  10. airtest adb 远程连接_使用Airtest超快速开发App爬虫