1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > php限制密码输入错误次数 js密码输入错误指定次数禁止输入

php限制密码输入错误次数 js密码输入错误指定次数禁止输入

时间:2023-04-28 01:46:04

相关推荐

php限制密码输入错误次数 js密码输入错误指定次数禁止输入

下面要说的是网站中一个常见的功能,在客人使用抵用券或者其他来支付的时候需要验证密码,如果密码输入错误5次就锁定,不在让客人使用抵用券了,在这里是使用的cookie来实现的,不太严谨。

思路很简单,在输入密码错误的时候,使用cookie保存2个变量,一个是标识当前客人是否已经被锁定,这个只保存30分钟,一个是记录输入错误次数,这个可以长时间保存。函数根据是否锁定弹出相应的信息

if(输入密码错误)

{

if(锁定标识为false)

{

保存出错次数为1;

返回锁定状态为false;

}

else

{

取出出错次数;

if(出错次数小于5)

{

累加出错次数并保存;

返回锁定状态为false;

}

else

{

保存锁定状态标识30分钟;

设置出错次数为0并保存;

返回锁定状态为true

}

}

}

else

{

返回锁定状态为false

}functionlogInputFaile(){

//varcount=document.getElementById("userErrCoun").value;

//varlockTim=document.getElementById("userPinLocTim").value;

varuidErrCoun=document.getElementById("Userid").value+"userErrCoun";

varPinLoc=document.getElementById("Userid").value+"userPinLocTim";

varcount=getCookie(uidErrCoun);

varlockTim=getCookie(PinLoc);

if(lockTim==null||lockTim==""){//未锁定

varexpireDate=newDate();

expireDate.setTime(expireDate.getTime()+24*60*60*1000);

if(count==null||count==""){//第一次输入错误

setCookie(uidErrCoun,1,expireDate.toGMTString(),"/");

returnfalse;

}

else{

varexpireDate=newDate();

expireDate.setTime(expireDate.getTime()+24*60*60*1000);

varcount=getCookie(uidErrCoun);

if(count<=5){//出错小于5次

setCookie(uidErrCoun,++count,expireDate.toGMTString(),"/");

returnfalse;

}

else{//大于5次,锁定账号

varexpireDate=newDate();

expireDate.setTime(expireDate.getTime()+30*60*1000);

setCookie(PinLoc,"userPinLocTim",expireDate.toGMTString(),"/");

deleteCookie(uidErrCoun,"/");

returntrue;

}

}

}

else{

returntrue;

}

}

这里很想说明一下设置cookie的过期时间,本来想找到一个类似于adddays()这样的方法,但是javascript中没有类似的方法,只有一个setTime,并且要和getTime搭配之用,其他的方法如setDate(day)是设置当前时间中的天,这个和我们的目的有点差别,一般我们想要设置当前这个cookie多长时间内过期,而不是在一个具体的时间点过期,所以大多数时间我们的思维是:保存用户账号50天,而不是从现在开始计算好50天,然后再当前时间基础上设置天数为50,并且还要考虑50天之后是几号,月份是多少,年份是多少,如果闰年就更麻烦了。

dateObject.getTime():getTime() 方法可返回指定的日期dateObject距 1970 年 1 月 1 日之间的毫秒数。

dateObject.setTime(millisec):setTime() 方法以时间据 GMT 时间 1970 年 1 月 1 日午夜之间的毫秒数设置 Date 对象。

所以只要获取当前时间距离格林威治时间的毫秒数,再加上想要过期的时间的毫秒数,在使用setTime设置就可以得到正确的过期时间。

最后调用这个函数,如果返回true就证明锁定了,弹出提示,为false证明未被锁定。代码如下: 方法中用到的工具方法setCookie和getCookie是javascript中读写cookie的包装方法,原型请参考另外一篇随笔 javascript读写cookie

本文作者:Tyler Ning

本文出处:/tylerdonet/

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。