1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| <?php
/*
Page: login.php
*/
session_start(); // à mettre tout en haut du fichier .php, cette fonction propre à PHP servira à maintenir la $_SESSION
$error=''; // Variable To Store Error Message
if(isset($_POST['submit'])) { // si le bouton "Connexion" est appuyé
// on vérifie que le champ "username" n'est pas vide
// empty vérifie à la fois si le champ est vide et si le champ existe belle et bien (is set)
if(empty($_POST['username'])) {
$error = "Le champ username est vide.";
} else {
// on vérifie maintenant si le champ "Mot de passe" n'est pas vide"
if(empty($_POST['password'])) {
$error = "Le champ Mot de passe est vide.";
} else {
// les champs sont bien posté et pas vide, on sécurise les données entrées par le membre:
$username = htmlentities($_POST['username'], ENT_QUOTES, "utf-8"); // le htmlentities() passera les guillemets en entités HTML, ce qui empêchera les injections SQL
$user_password = htmlentities($_POST['password'], ENT_QUOTES, "utf-8");
//on se connecte à la base de données:
$mysqli = mysqli_connect("localhost", "root", "", "");
//on vérifie que la connexion s'effectue correctement:
if(!$mysqli){
$error = "Erreur de connexion à la base de données.";
} else {
// on fait maintenant la requête dans la base de données pour rechercher si ces données existe et correspondent:
$Requete = mysqli_query($mysqli,"SELECT hash FROM user WHERE username = '" . mysqli_real_escape_string($mysqli, $username) . "'");
// si il y a un résultat, mysqli_num_rows() nous donnera alors 1
// si mysqli_num_rows() retourne 0 c'est qu'il a trouvé aucun résultat
$result = mysqli_fetch_row($Requete);
if (!$result) {
$error = "L'utilisateur est incorrect.";
} else {
$hash = $result[0];
if(password_verify($user_password, $hash)) {
//if (mysqli_num_rows($Requete) == 1) {
// on ouvre la session avec $_SESSION:
$_SESSION['login_user'] = $username; // la session peut être appelée différemment et son contenu aussi peut être autre chose que le username
header("location: membre.php"); // Redirecting To Other Page
}else {
$error = "Le username ou le mot de passe est incorrect, le compte n'a pas été trouvé.";
}
}
}
}
}
}
?> |
Partager