php结合redis限制用户登入密码错误次数
程序员文章站
2022-07-09 15:32:46
就用原生的面向过程写了个小dome ,数据库信息用数组代替了.
整体思路是这样的,具体怎么用,具体的自己放框架里改改优化一下就 ok的。
php代码:
connect(&...
就用原生的面向过程写了个小dome ,数据库信息用数组代替了.
整体思路是这样的,具体怎么用,具体的自己放框架里改改优化一下就 ok的。
php代码:
connect('127.0.0.1', 6379); //模拟数据库信息 $userinfo = array('xxx'=>'000000','yyy'=>'111111'); //接受用户输入信息 $name = $_POST['username']; $passwd = $_POST['userpasswd']; //判断是否已经错误三次 if($redis->get($name) >=3){ //以错三次 为该用户设置操作等待时间 60秒 $redis->expire($name,60); echo '请您1分钟后在登入吧';exit(); } //判断用户是否存在 if(!array_key_exists($name,$userinfo)){ echo '用户名不存在'; exit(); } //判断密码是否正确 if($passwd != $userinfo[$name]){ //当前错误不是第一次 将错误次数加 1 if($redis->exists($name)){ $redis->incr($name); }else{ //第一次错误将错误信息存入redis中 $redis->set($name,1); } echo '密码不正确'; exit(); }else{ echo '成功'; }
html代码
<meta charset="UTF-8" /> <title></title> <form action="redisLogin.php" method="post"> <input name="username" placeholder="请输入用户名" type="text" /> <input name="userpasswd" placeholder="请输入密码" type="text" /><button type="submit">登入</button></form>