1.准备工作,tp5框架、redis扩展库
1.1redis扩展两个建议(两个任意选一个):
composer require predis/predis(建议选);
composer require xiucaiwu/tp5redis(我选的:我在做的时候发现这个库不全,给他完善了一下)
2.代码
2.1应用扩展类库
use tp5redis\Redis;
2.2登录界面
2.2.1PHP
/*
*登录界面
*/
public function Login()
{
return $this->fetch();
}
2.2.2html
!<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<form class="" action="formhander" method="post">
用户名:<input type="text" name="username" value=""><br/>
密码:<input type="text" name="pwd" value=""><br/>
<input type="submit" value="登录">
</form>
</body>
</html>
2.3 提交表单
/*
* 提交表单
*/
public function formhander()
{
$error_count_key = 'error_count_key:1';
$userinfo = [
'username'=>'fgc',
'pwd'=>'123456'
]; // 模拟数据库中数据
//接受用户输入信息
$name = $_POST['username'];
//var_dump($name);die;
$passwd = $_POST['pwd'];
//判断用户是否存在
if($name !== $userinfo['username']){
echo '用户名不存在';
exit();
}
//判断是否已经错误三次
if(Redis::get($error_count_key) >=3){
//以错三次 为该用户设置操作等待时间 60秒
Redis::expire($error_count_key,60);
echo '请您1分钟后在登入吧';
exit();
}
//判断密码和账号是否正确
if($passwd == $userinfo['pwd']){
echo '成功';
}else{
//不正确
//判断当前redis中是否存在错误的次数
if(Redis::exists($error_count_key)){
Redis::Incr ($error_count_key);
}else{
//第一次错误将错误信息存入redis中
Redis::set($error_count_key,1);
}
echo '密码不正确';
exit();
}
}
这个代码还是有一些问题的,包括我引用的那个扩展。我后期会完善好再发上来的。如果大家对我写的有什么建议或者意见或者问题的话,可以加我的微信号:fvalyl或者发我邮箱:544942125@qq。com