PHP结合redis 限制用户登入 密码错误次数(redis实例)

就用原生的面向过程写了个小dome ,数据库信息用数组代替了. 
整体思路是这样的,具体怎么用,具体的自己放框架里改改优化一下就 ok的。 
php代码:

<?php
/**
 * Created by PhpStorm.
 * User: rjj
 * Date: 2017/7/2
 * Time: 20:58
 */
//实例化redis数据库
$redis=  new Redis();
$redis->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代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>错误限制</title>
</head>
<body>
<form method="post" action="redisLogin.php">
    <input type="text" name="username" placeholder="请输入用户名">
    <input type="text" name="userpasswd" placeholder="请输入密码">
    <button type="submit">登入</button>
</form>
</body>
</html>

简单的一个小实例*-*

转载于:https://my.oschina.net/raojiangjin/blog/1544233

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值