Pourquoi mon formulaire de connexion ne peut-il pas se connecter à la base de données MySQL ?
Votre formulaire de connexion ne parvient pas à se connecter à la base de données MySQL en raison de plusieurs raisons. Les réponses suivantes fournissent des solutions complètes pour résoudre les problèmes potentiels :
Gestion sécurisée des mots de passe :
Il est crucial de protéger les mots de passe des utilisateurs en utilisant plutôt le hachage des mots de passe. de les stocker en clair. Utilisez des fonctions telles que password_hash() pour chiffrer les mots de passe de manière unidirectionnelle, garantissant ainsi leur sécurité.
Prévention des injections SQL :
Évitez d'utiliser l'utilisateur- fourni des données directement dans vos requêtes SQL. Utilisez des instructions préparées et liez des paramètres pour empêcher les attaques par injection SQL malveillantes, qui peuvent compromettre votre base de données.
Fonctionnalité mysqli avec code Exemples :
register.php
// DB Credentials $servername = "localhost"; $username = "root"; $password = ""; $dbname = "user_accounts2"; // Secure Connection mysqli_report(MYSQLI_REPORT_ALL); error_reporting(E_ALL); ini_set("display_errors", 1); // Database Connection $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // User Registration if (isset($_POST['register'])) { $email = mysqli_real_escape_string($conn, $_POST['email']); $password = mysqli_real_escape_string($conn, $_POST['password']); // Password Hashing $hashed_password = password_hash($password, PASSWORD_DEFAULT); // Prepared Statement and Parameter Binding $stmt = $conn->prepare("INSERT INTO user_accounts2 (email, password) VALUES (?, ?)"); $stmt->bind_param("ss", $email, $hashed_password); // Query Execution $stmt->execute(); } // Close Connection $stmt->close(); $conn->close();
login.php
// DB Credentials and Secure Connection Same as register.php // User Login if (isset($_POST['login'])) { $email = mysqli_real_escape_string($conn, $_POST['email']); $password = mysqli_real_escape_string($conn, $_POST['password']); // Prepared Statement and Parameter Binding $stmt = $conn->prepare("SELECT * FROM user_accounts2 WHERE email = ?"); $stmt->bind_param("s", $email); // Query Execution $stmt->execute(); $result = $stmt->get_result(); if ($row = $result->fetch_assoc()) { // Password Verification if (password_verify($password, $row['password'])) { echo "Logged in successfully!"; } else { echo "Invalid credentials"; } } else { echo "User not found"; } // Close Statement and Connection $stmt->close(); $conn->close(); }
Fonctionnalité pdo avec exemples de code :
Référez-vous à cette ressource pour un exemple détaillé d'authentification utilisateur à l'aide de PDO : [Réponse : Authentification utilisateur PDO](https://stackoverflow.com/questions/5926241/php-pdo-user-authentication/5927236#5927236)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!