大家好,今天要跟你们聊聊如何在我们的Web应用中实现‘统一身份认证’和‘排行榜’的功能。首先,我们来谈谈‘统一身份认证’。
假设我们有一个用户表(users),包含id, username, password等字段。为了简化,这里只展示关键部分:
<?php
// 假设这是我们的数据库连接配置
$db_host = 'localhost';
$db_user = 'root';
$db_pass = 'password';
$db_name = 'test_db';
// 创建数据库连接
$conn = new mysqli($db_host, $db_user, $db_pass, $db_name);
// 检查连接是否成功
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 用户登录验证函数
function verifyUser($username, $password, $conn) {
$sql = "SELECT * FROM users WHERE username='$username'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
if (password_verify($password, $row['password'])) {
return true;
}
}
return false;
}
// 使用示例
if (verifyUser('user1', 'pass123', $conn)) {
echo "登录成功!";
} else {
echo "登录失败!";
}
?>
接下来,我们来看看如何实现‘排行榜’功能。我们假设排行榜根据用户的得分进行排名,得分存储在另一个表(scores)中,包含user_id, score等字段。
<?php
// 获取排行榜数据
function getLeaderboard($conn) {
$sql = "SELECT u.username, s.score FROM users u JOIN scores s ON u.id = s.user_id ORDER BY s.score DESC LIMIT 10";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "用户名: " . $row["username"] . " - 分数: " . $row["score"] . "
";
}
} else {
echo "没有找到任何记录。";
}
}
// 使用示例
getLeaderboard($conn);
?>
这样我们就完成了一个简单的‘统一身份认证’和‘排行榜’功能的实现。希望这个例子对大家有所帮助。