python输入错误提示再次输入_Python实现用户登录并且输入错误三次后锁定该用户...
实现用户登录并且输入错误三次后锁定该用户
我的测试环境,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实现用户登录并且输入错误三次后锁定该用户...相关推荐
- python练习—用户登录界面输入验证码测试
用户登录界面输入验证码测试--Python import random s="qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234 ...
- python123不能登录_python用户登录,密码错误3次则锁定
需求: 1.输入用户名密码 2.认证成功后显示欢迎信息 3.输错三次后锁定 实现思路: 1.判断用户是否在黑名单,如果在黑名单提示账号锁定. 2.判断用户是否存在,如果不存在提示账号不存在. 3.判断 ...
- python编写一个登陆验证程序_Python实现简单登录验证详解
本文实例为大家分享了简单的Python登录验证,供大家参考,具体内容如下 编写登录接口 要求:1.输入用户名密码 2.认证成功后显示欢迎信息 3.输错三次后锁定 #coding=utf-8 __aut ...
- Sql Server 解决“用户登录失败,错误编18456”
Sql Server 解决"用户登录失败,错误编号18456" 1.说明 2.其他错误信息 排错分析 1.说明 因密码或用户名错误而使身份验证失败并导致连接尝试被拒时,类似以下内容 ...
- mysql用户登录错误18456_SQL SERVER 2005 用户登录时报18456错误
SQL SERVER 2005 用户登录时报18456错误 [问题] 最近突然发现SQL SERVER 身份验证方式无法正常登录了,总是报18456错误,而windows 用户可以正常登录. [解决方 ...
- python错误提示库没有注册_SpringBoot实现登录注册常见问题解决方案
一.用户名密码都正确的情况下被登录拦截器拦截 控制台报错:org.apache.ibatis.executor.ExecutorException: A query was run and no Re ...
- python对文件操作的相关函数_python文件操作的相关函数深入理解Django中内置的用户认证...
前言 本文主要给大家介绍了关于Django中内置用户认证的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 认证登陆 在进行用户登陆验证的时候,如果是自己写代码,就必须要先查 ...
- c语言程序错误提示一个找不到,C语言编辑程序出现错误提示.doc
C语言编辑程序出现错误提示 Turbo?C?2.0编译错误信息fgh1986% (2007-06-19 21:40:46) 标签: 分类: Turbo C(V2.0)编译错误信息编译错误信息等简易说明 ...
- c语言中的错误提示,C语言20条编程中遇到的错误提示.doc
C语言20条编程中遇到的错误提示 1. 代码: 编译器提示错误:error: else without a previous if 错误原因解读:'else'的前面没有匹配的'if' 2. 代码: 编 ...
最新文章
- 在OpenWrt中上传文件至路由器
- 【linux家常菜】redhat 6.5 安装yum
- WEB前端 深入了解JavaScript ajax—XHR对象
- Android笔记 style样式
- 【Flink】 producer attempted to use a producer id which is not currently assigned to its transaction
- 注释不能自动设置时间_微波炉维修|微波炉能加热食品,但是到了设定时间,不能自动断电。...
- 新浪2017校园招聘---C++后台研发
- 关于Jqueryweui 的select联动用法
- Javascript设计模式-18-状态模式
- Java 对上传文件后缀格式的校验
- GitHub下载提速
- python爬表情包_【从零开始写爬虫一】批量下载表情包
- lua pairs与ipairs区别
- EventSource+eggjs
- 图形学(3)光栅图形学的直线绘制(下)
- 雷军亲自打造的套餐了解下:用多少付多少
- 手机吃鸡语音服务器异常是怎么回事,《绝地求生》新版本里实用功能介绍 卡语音怎么解决...
- 分分钟带你读懂-ButterKnife-的源码
- 《道德经》第四十三章
- 1的阶乘到100的阶乘之和
热门文章
- python 单词长度_用python手刃leetcode(58):最后一个单词的长度【简单题】
- ospf配置命令_思科设备 OSPF 的相关知识点
- html5 职工入职后台管理系统_10个酷炫的后台模板
- c调用python接口_通过Python自带C/C++接口实现python与c/c++相互调用
- 时间复杂度和空间复杂度探究
- mysql循环建表_MySQL 开发准则(总结自阿里巴巴开发手册)
- 微赞dataconfig.php,php生成微信jssdk wx.config参数,调用js接口
- RS232和RS485
- 微信小程token_微信小程序url与token设置详解
- airtest adb 远程连接_使用Airtest超快速开发App爬虫