Problème :
L'insertion de valeurs d'un formulaire HTML dans une base de données MySQL est ne s'exécute pas correctement et la base de données reste vide.
Solution :
Le code PHP fourni contient une requête SQL stockée sous forme de variable de chaîne :
$sql = "INSERT INTO users (username, password, email) VALUES ('".$_POST["username"]."','".$_POST["password"]."','".$_POST["email"]."')";
Cependant, cette requête n'est pas exécutée. Pour exécuter une requête, vous devez utiliser des fonctions MySQL telles que des instructions préparées pour garantir la sécurité et l'intégrité de vos données.
Bonne pratique : utiliser des instructions préparées
Instructions préparées protéger contre l’injection SQL en séparant la requête de l’entrée utilisateur. Voici comment les utiliser :
Préparez l'instruction SQL :
$sql = "INSERT INTO users (username, password, email) VALUES (?,?,?)";
Lier les variables d'entrée :
$stmt = $mysqli->prepare($sql); $stmt->bind_param("sss", $_POST['username'], $_POST['email'], $_POST['password']);
Exécuter l'instruction préparée :
$stmt->execute();
Sécurité supplémentaire Mesure :
Pour améliorer la sécurité, stockez les mots de passe dans un format haché crypté au lieu de texte brut à l'aide de password_hash.
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!