DEV Community

sasuke uchiwa
sasuke uchiwa

Posted on

Application Web

- Architecture et composants du projet

1. Inscription
register.php
• Validation multi-critères, hashage bcrypt, vérification d'unicité en base de données

2. Connexion
login.php
• Authentification par email ou username, vérification sécurisée du mot de passe hashé

3. Déconnexion
logout.php
• Destruction complète de la session PHP, redirection vers la page de connexion

- Connexion

• Voici la page de connexion. L'utilisateur entre son email ou son nom d'utilisateur avec son mot de passe. Si les informations sont incorrectes, un message d'erreur rouge s'affiche.

LE CODE :

<?php
session_start();
require "config/bd.php";

if ($_SERVER["REQUEST_METHOD"] === "POST") {
$login = trim($_POST["login"]);
$password = $_POST["password"];

$stmt = $pdo->prepare(
"SELECT * FROM users WHERE username = ? OR email = ?"
);
$stmt->execute([$login, $login]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);

if ($user && password_verify($password, $user["password"])) {
$_SESSION["user_id"] = $user["id"];
$_SESSION["username"] = $user["username"];
header("Location: dashboard.php");
exit;
} else {
$error = "Email / nom d'utilisateur ou mot de passe incorrect.";
}
}
Ce code permet :

• L'utilisateur peut se connecter avec son
email OU son username.
• La requête SQL cherche dans les deux colonnes en même temps.
password_verify()
• compare le mot de passe entré avec le hash stocké en BDD.

  1. Si correct : infos sauvegardées en session et redirection vers le dashboard.
  2. Sinon : message d'erreur rouge s'affiche.

- Inscription

Formulaire d'inscription


• l'utilisateur doit s'inscrire il remplit son nom, son email et son mot de passe on vérifie que les informations sont correctes et si tout est bon, un message vert s'affiche et l'utilisateur peut aller se connecter.

LE CODE :

<?php
session_start();
require "config/bd.php";

if ($_SERVER["REQUEST_METHOD"] === "POST") {
$username = trim($_POST["username"]);
$email = trim($_POST["email"]);
$password = $_POST["password"];
$confirm = $_POST["confirm_password"];

$hashedPassword = password_hash($password, PASSWORD_DEFAULT);

$stmt = $pdo->prepare(
"INSERT INTO users (username, email, password) VALUES (?, ?, ?)"
);
$stmt->execute([$username, $email, $hashedPassword]);
}

Ce code permet :

• L'utilisateur remplit : nom, email, mot de passe,
confirmation.
• Validations : champs obligatoires, email valide, mot
de passe min 6 car., unicite.
• Le mot de passe est chiffre avec bcrypt avant
stockage.
• Les donnees sont inserees dans la table users de
riyad.
• Un message vert confirme le succes

- Dashboard

LE CODE :

<?php
session_start();

if (!isset($_SESSION["username"])) {
header("Location: login.php");
exit;
}
?>

<h1>VOITURE CHEZ ILYAS</h1>
Bienvenue, = htmlspecialchars($_SESSION["username"]) ?>

Ce code permet :
• Verifie si l'utilisateur est connecte via la session.
• Si non connecte : redirige automatiquement vers
login.php.
• Affiche le nom de l'utilisateur en haut a droite via la
session.
• Catalogue de 6 voitures avec images, prix et
caracteristiques.
• Bouton rouge "Se deconnecter" en bas de page
Vérifie si l'utilisateur est connecté via la session.
Si non connecté : redirigé automatiquement vers
login.php
• Affiche le nom de l'utilisateur en haut à droite grâce à la session.
• Catalogue de 6 voitures avec images, prix et caractéristiques.
• Bouton rouge"Se déconnecter"en bas de page.

- Déconnexion — logout.php

<?php
session_start();
session_destroy();
header("Location: login.php");
exit;

Ce code permet :

• session_start()
charge la session active.
• session_destroy()
supprime toutes les données de session.
• L'utilisateur est redirigé vers
login.php.
• Simple mais essentiel pour la sécurité — empêche l'accès au dashboard après déconnexion.

- Architecture — Base de données

• Ce tableau montre les informations des utilisateurs dans la base de données.

$host = "localhost";
$db = "riyad";
$user = "root";
$pass = "";
• Ce code permet de connecter le site web à la base de données afin de vérifier les informations des utilisateurs.
new PDO(
"mysql:host=$host;port=3307;dbname=$db;charset=utf8",
$user, $pass
);
• Ce code crée une connexion à une base de données MySQL avec PHP

Top comments (0)