<?php session_start(); //affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //connexion propre mysqli $db_username = 'root'; $db_password = ''; $db_name = 'mapbdd'; $db_host = 'localhost'; $db = mysqli_connect($db_host, $db_username, $db_password,$db_name) // Check connection if (mysqli_connect_errno()){ echo "Failed to connect to MySQL: " . mysqli_connect_error(); } //----------------------------------------------------------// //récupération PROPRE des variables AVANT de les utiliser //----------------------------------------------------------// $username = !empty($_POST['username']) ? $_POST['username'] : NULL; $password = !empty($_POST['password']) ? $_POST['password'] : NULL; if($username && $password) { $username = mysqli_real_escape_string($db,$username); $password = mysqli_real_escape_string($db,$password); $requete = "SELECT count(*) FROM login WHERE nom_utilisateur = '".$username."' AND mot_de_passe = '".$password."' "; if (!$exec_requete = mysqli_query($db,$requete)){ echo("Error requete : " . mysqli_error($db)); } $reponse = mysqli_fetch_array($exec_requete); mysqli_close($db); // fermer la connexion $count = $reponse['count(*)']; if($count!=0){ // nom d'utilisateur et mot de passe correctes $_SESSION['username'] = $username; header('Location: principale.php'); exit(); //toujours mettre un EXIT après une redirection } else { header('Location: login.php?erreur=1'); // utilisateur ou mot de passe incorrect exit(); } } else { //le temps des tests : print_r($_POST); //header('Location: login.php?erreur=2'); // utilisateur ou mot de passe vide exit(); } ?>
Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire
201 internautes nous ont dit merci ce mois-ci
Il fait, par contre, crypter les password déjà presents dans ta bdd.
2 - Tu boucles sur chaque ligne du résultat de la requête
3 - Pour chaque user :
A) Tu récupère le password
B) Tu le hash
C) Tu mets à jour le user avec le nouveau password ( requête UPDATE )