0, 'time' => time()]; $loginErr = $_SESSION[$lockKey]; if (time() - $loginErr['time'] > 300) { $_SESSION[$lockKey] = ['num' => 0, 'time' => time()]; $loginErr = $_SESSION[$lockKey]; } // 登录提交处理 if ($_POST) { $username = trim($_POST['username'] ?? ''); $pwd = trim($_POST['pwd'] ?? ''); if ($loginErr['num'] >= 5) { $errMsg = "密码错误次数过多,请等待5分钟后重试"; } elseif (!$username || !$pwd) { $errMsg = "账号与密码不能为空"; } else { $conn = mysqli_connect($dbHost, $dbUser, $dbPass, $dbName); $u = mysqli_real_escape_string($conn, $username); $sql = "SELECT id,username,password,role FROM sys_user WHERE username='$u' LIMIT 1"; $res = mysqli_query($conn, $sql); $user = mysqli_fetch_assoc($res); if ($user && password_verify($pwd, $user['password'])) { $_SESSION[$lockKey] = ['num' => 0, 'time' => time()]; $_SESSION['user_id'] = $user['id']; $_SESSION['username'] = $user['username']; $_SESSION['role'] = $user['role']; $_SESSION['login_time'] = time(); mysqli_query($conn, "UPDATE sys_user SET last_login=NOW() WHERE id=" . $user['id']); header("Location: dashboard.php"); exit; } else { $_SESSION[$lockKey]['num']++; $errMsg = "账号或密码输入错误"; } mysqli_close($conn); } } ?>