Je vous fournit le code de la page login et register ainsi que la structure de la bdd, merci.
Fonction pour login:
Code : Tout sélectionner
<?php
session_start();
// Info de co.
$DATABASE_HOST = 'localhost';
$DATABASE_USER = 'root';
$DATABASE_PASS = '****';
$DATABASE_NAME = 'espace_membre';
// Connection à la base
$con = mysqli_connect($DATABASE_HOST, $DATABASE_USER, $DATABASE_PASS, $DATABASE_NAME);
if ( mysqli_connect_errno() ) {
// En cas d'erreur
die ('Erreur connexion BDD: ' . mysqli_connect_error());
}
// Voir si les données sont bien reçus
if ( !isset($_POST['username'], $_POST['password']) ) {
// Données non reçus
die ('Veuillez remplir le champ nom utilisateur et mot de passe !');
}
// Préparation de la bdd
if ($stmt = $con->prepare('SELECT id, password FROM accounts WHERE username = ?')) {
$stmt->bind_param('s', $_POST['username']);
$stmt->execute();
// Stocker le résultat
$stmt->store_result();
if ($stmt->num_rows > 0) {
$stmt->bind_result($id, $password);
$stmt->fetch();
// Vérifier le mot de passe
if (password_verify($_POST['password'], $password)) {
// Connection de l'utilisateur
// Créer la session
session_regenerate_id();
$_SESSION['loggedin'] = TRUE;
$_SESSION['name'] = $_POST['username'];
$_SESSION['id'] = $id;
header('Location: home.php');
} else {
echo 'Mot de passe incorrect !';
}
} else {
echo 'Nom utilisateur incorrect !';
}
$stmt->close();
}Code : Tout sélectionner
<?php
//connexion à la base de données:
$BDD = array();
$BDD['host'] = "localhost";
$BDD['user'] = "root";
$BDD['pass'] = "****";
$BDD['db'] = "espace_membre";
$mysqli = mysqli_connect($BDD['host'], $BDD['user'], $BDD['pass'], $BDD['db']);
if(!$mysqli) {
echo "Connexion non établie.";
exit;
}
//par défaut, on affiche le formulaire (quand il validera le formulaire sans erreur avec l'inscription validée, on l'affichera plus)
$AfficherFormulaire=1;
//traitement du formulaire:
if(isset($_POST['username'],$_POST['password'])){//l'utilisateur à cliqué sur "S'inscrire", on demande donc si les champs sont défini avec "isset"
if(empty($_POST['username'])){//le champ username est vide, on arrête l'exécution du script et on affiche un message d'erreur
echo "Le champ username est vide.";
} elseif(!preg_match("#^[a-zA-Z0-9]+$#",$_POST['username'])){//le champ username est renseigné mais ne convient pas au format qu'on souhaite qu'il soit, soit: que des lettres minuscule + des chiffres (je préfère personnellement enregistrer le username de mes accounts en minuscule afin de ne pas avoir deux username identique mais différents comme par exemple: Admin et admin)
echo "Le username doit être renseigné en lettres minuscules sans accents, sans caractères spéciaux.";
} elseif(strlen($_POST['username'])>25){//le username est trop long, il dépasse 25 caractères
echo "Le username est trop long, il dépasse 25 caractères.";
} elseif(empty($_POST['password'])){//le champ mot de passe est vide
echo "Le champ Mot de passe est vide.";
} elseif(empty($_POST['email'])){//le champ mot de passe est vide
echo "Le champ Email est vide.";
} elseif(empty($_POST['poids'])){//le champ mot de passe est vide
echo "Le champ Poids est vide.";
} elseif(mysqli_num_rows(mysqli_query($mysqli,"SELECT * FROM accounts WHERE username='".$_POST['username']."'"))==1){//on vérifie que ce username n'est pas déjà utilisé par un autre membre
echo "Ce username est déjà utilisé.";
} elseif(!preg_match("#^[0-9]+$#",$_POST['poids'])){
echo "Le champ poids doit être uniquement en chiffres.";
} else {
//toutes les vérifications sont faites, on passe à l'enregistrement dans la base de données:
//Bien évidement il s'agit là d'un script simplifié au maximum, libre à vous de rajouter des conditions avant l'enregistrement comme la longueur minimum du mot de passe par exemple
if(!mysqli_query($mysqli,"INSERT INTO accounts SET username='".$_POST['username']."', password='".md5($_POST['password'])."', email='".$_POST['email']."', poids='".$_POST['poids']."'")){//on crypte le mot de passe avec la fonction propre à PHP: md5()
echo "Une erreur s'est produite: ".mysqli_error($mysqli);
} else {
echo "Vous êtes inscrit avec succès!";
//on n'affiche plus le formulaire
$AfficherFormulaire=0;
}
}
}
if($AfficherFormulaire==1){
?>
<head>
<link href="register.css" rel="stylesheet" type="text/css">
<meta charset="utf-8">
<title>Inscription - Performance Saut</title>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.1/css/all.css">
</head>
<body>
<div class="register">
<form method="post" action="register.php">
<div class="center-text-h-v">
<input type="text" name="username" placeholder="Nom d'utilisateur" required>
<input type="password" name="password" placeholder="Mot de passe" required><br>
<input type="text" name="email" placeholder="Email" required>
<input type="text" name="poids" placeholder="Poids (en KG)" required>
</form>
<form action="/panel_inscription/home.php" method="get">
<input type="submit" value="S'inscrire">
</form>
</div>
</body>
<?php
}Merci à vous pour votre aide.