thinkphp 用户登录记录日记
1、设计数据库表名,字段
2,建立模型
<?php namespace app\login\model; use think\Model; class LoginLon extends Model { // protected $table = 'loginLog'; protected $createTime = true; protected $updateTime = true; //将用户的登陆的信息入库 public static function log($data) { return self::create($data, true); } }
3.编写登录日记
<?php namespace app\login\controller; use app\login\model\LoginLon; use app\login\model\LoginModel; use think\Controller; use think\Validate; use think\View; class Login extends Controller { public function login() { return view(); } public function loginSuccess() { $ip = request()->ip(); $userIp = ip2long($ip); //接受参数 $data = input(); // 验证参数非空 $rule = [ 'account' => 'require', 'password' => 'require', 'code' => 'require' ]; //提示信息 $tips = [ 'account.require' => '账号不可以为空', 'password.require' => '密码不可以为空', 'code.require' => '验证码不可以为空' ]; $validate = new Validate($rule, $tips); $result = $validate->check($data); if (!$result) { $this->error($validate->getError(), 'login/login/login'); } //数据库用户的信息(账号密码与登录的用户进行对比) $result = LoginModel::loginParams($data); if ($data['account'] != $result['name']) { $this->error('账号输入错误', '/login/login/login'); } if (md5($data['password']) != md5($result['password'])) { $this->error('密码输入错误', '/login/login/login'); } if (!captcha_check($data['code'])) { //验证失败 $this->error('验证码输入错误', '/login/login/login'); }; //添加登录日记 $log = [ 'user_id' => $result['id'], 'ip' => $userIp, 'username' => $result['account'] . '登录' ]; $result = LoginLon::log($log); if ($data) { session('name', $data['account']); $this->success('登录成功'); } } }
4.建立loginlog模型
【推荐】国内首个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岁的心里话
· 按钮权限的设计及实现