Код входа в PHP OOP с аутентификацией базы данных

Вот пример PHP-кода, использующего объектно-ориентированное программирование (ООП) для реализации системы входа в систему с аутентификацией пользователя из базы данных:

<?php
class User {
    private $conn;
    public function __construct() {
        // Establish database connection
        $this->conn = new PDO("mysql:host=localhost;dbname=your_database_name", "username", "password");
    }
    public function login($username, $password) {
        // Sanitize input
        $username = htmlspecialchars($username);
        $password = htmlspecialchars($password);
        // Prepare SQL statement
        $stmt = $this->conn->prepare("SELECT * FROM users WHERE username = :username");
        $stmt->bindParam(':username', $username);
        $stmt->execute();
        // Fetch user data
        $user = $stmt->fetch(PDO::FETCH_ASSOC);
        // Verify password
        if ($user && password_verify($password, $user['password'])) {
            // Password is correct, user is authenticated
            return true;
        } else {
            // Invalid username or password
            return false;
        }
    }
}
// Usage example
$user = new User();
if ($user->login('username', 'password')) {
    echo "Login successful!";
} else {
    echo "Invalid username or password.";
}
?>

В этом коде предполагается, что у вас есть таблица базы данных с именем usersсо столбцами usernameи password. Он использует подготовленные операторы для предотвращения внедрения SQL и функцию password_verify()для проверки пароля по хешированному паролю, хранящемуся в базе данных.