保护 SQL 登录数据的 PHP 有多种解决方法。下面是一种常见的方法,使用准备语句和绑定参数来防止 SQL 注入攻击。
connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 获取用户输入的数据
$username = $_POST['username'];
$password = $_POST['password'];
// 创建准备语句
$stmt = $conn->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
// 绑定参数
$stmt->bind_param("ss", $username, $password);
// 执行查询
$stmt->execute();
// 获取查询结果
$result = $stmt->get_result();
// 检查结果是否为空
if ($result->num_rows > 0) {
// 用户登录成功
echo "登录成功!";
} else {
// 用户名或密码错误
echo "用户名或密码错误!";
}
// 关闭连接
$stmt->close();
$conn->close();
?>
在上面的示例代码中,我们使用了 mysqli 扩展来连接到数据库,并使用准备语句和绑定参数来执行 SQL 查询。这样可以确保用户输入的数据不会被解释为 SQL 代码,从而防止 SQL 注入攻击。
请注意,上述代码只是一个示例,你可能需要根据你自己的需求进行适当的修改和改进。例如,你可能需要添加其他的安全措施,如密码哈希、加密等。另外,建议在前端也对用户输入进行适当的验证和过滤,以进一步增强安全性。