think php 7天免登录
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css"> </head> <body> <form action="/admin/login/loginSuccess" method="post" style="width: 300px;"> <div class="form-group"> <label for="name">账号</label> <input type="text" class="form-control" name="account"> </div> <div class="form-group"> <label for="name">密码</label> <input type="password" class="form-control" name="password"> </div> <div> <input type="checkbox" value="1" name="free">7天免登录 </div> <input type="submit" value="立即登录" class="btn btn-success"> </form> </body> </html>

控制器 <?php namespace app\admin\controller; use app\admin\model\LoginModel; use think\Controller; use think\Cookie; use think\Request; use think\Validate; class Login extends Controller { /** * 显示资源列表 * * @return \think\Response */ public function login() { if (Cookie::has('name')) { $this->success('登录成功','/admin/login/loginShow'); } return view(); } public function loginSuccess() { $params = input(); //验证 $rule = [ 'account' => 'require', 'password' => 'require', ]; $msg = [ 'account.require' => '账号不可以为空', 'password.require' => '密码不可以为空', ]; $validate = new Validate($rule, $msg); $result = $validate->check($params); if (!$result) { $this->error($validate->getError()); } //验证用户信息 $data = LoginModel::getLoginInfo($params); // var_dump($data); if ($params['account'] != $data['name']) { $this->error('账号输入错误', '/admin/login/login'); } if ($params['password'] != $data['password']) { $this->error('密码输入错误', '/admin/login/login'); } //7天免登录 if (isset($params['free'])) { Cookie::set('name', $data['name'], 3600 * 24 * 7); $this->success('登录成功','/admin/login/loginShow'); } } public function loginShow(){ $this->success('登录成功','/admin/exam/create'); } }
模型
<?php namespace app\admin\model; use think\Model; class LoginModel extends Model { // protected $table='login'; public static function getLoginInfo($params){ return self::where('name',$params['account'])->find(); }
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css">
</head>
<body>
<form action="/admin/login/loginSuccess" method="post" style="width: 300px;">
<div class="form-group">
<label for="name">账号</label>
<input type="text" class="form-control" name="account">
</div>
<div class="form-group">
<label for="name">密码</label>
<input type="password" class="form-control" name="password">
</div>
<div>
<input type="checkbox" value="1" name="free">7天免登录
</div>
<input type="submit" value="立即登录" class="btn btn-success">
</form>
</body>
</html>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现