HACKATHON
Published: 2024-05-15 18:13:38

Notre projet PHP vise à fournir une solution complète pour la gestion des utilisateurs, en offrant des fonctionnalités robustes pour la connexion, la création de comptes et la déconnexion. En utilisant des techniques de cryptage sécurisé des mots de passe, des sessions PHP et des cookies, nous garantissons la sécurité et la confidentialité des informations des ​utilisateurs

**BASE DE DONNEES :**


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nl7450dtzu6rnctbyl6z.jpg)


_CODE DE CONNEXION AU BASE DE DONNEES:_

<?php
$host = 'localhost';
$username = 'root'; 
$password = ""; 
$dbname = "compte2"; 

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    echo "Erreur de connexion à la base de données: " . $e->getMessage();
}
?>



**PARTIE LOGIN:**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f1638ddgi6hvprv03ose.PNG)

_CODE:_

<?php
$serveur = "localhost";
$utilisateur = "root";
$motdepasse = "";
$basededonnees = "compte2";
try {
    $connexion = new PDO("mysql:host=$serveur;dbname=$basededonnees", $utilisateur, $motdepasse );
    $connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    if ($_SERVER["REQUEST_METHOD"] == "POST" ) {
        $nom_utilisateur = $_POST["nom"];
        $email = $_POST["email"]; 
        $mot_de_passe = $_POST["password"];
        
        $requete = $connexion->prepare("SELECT * FROM utilisateur2 WHERE nom = :nom AND email = :email AND password = :password");
        $requete->bindParam(':nom', $nom_utilisateur);
        $requete->bindParam(':email', $email); 
        $requete->bindParam(':password', $mot_de_passe);
        $requete->execute();
        
        if ($requete->rowCount() == 1) {
            $newWebsite = "http://localhost/PROJET2/deconnexion.php"; 
            header("Location: $newWebsite");
            exit; 
        } else {
            echo "Nom d'utilisateur ou Email ou mot de passe incorrect.";
        }
    }
} catch(PDOException $e) {
    echo "La connexion à la base de données a échoué : " . $e->getMessage();
}
?>

**PARTIE SIGN IN:**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tpx9y4xrbsxlrqlbci85.PNG)

_CODE DE VALIDATION:_

<?php
session_start();
require_once 'connexion2.php';
if ($_SERVER["REQUEST_METHOD"] == "POST") {   
    $nom = trim($_POST['nom2']);
    $email = trim($_POST['email2']);
    $password = trim($_POST['password2']);
    $confirmPassword = $_POST['confirmPassword'];
    if(empty($nom) || empty($email) || empty($password) || empty($confirmPassword)){
        echo "<script>alert('Please fill up all the required fields!')</script>";
        header('location:login.php');
        exit;
    }
    if($password !== $confirmPassword){
        echo "<script>alert('Passwords do not match!')</script>";
        exit;
    }

    
    try{
        
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $sql = "INSERT INTO utilisateur2 (nom, email, password) VALUES (:nom, :email, :password)";
        $stmt = $pdo->prepare($sql);
        $stmt->bindParam(':nom', $nom);
        $stmt->bindParam(':email', $email);
        $stmt->bindParam(':password', $password);
        $stmt->execute();
        $_SESSION['message'] = array("text" => "User successfully created.", "alert" => "info");  
     
        // header('location:login.php');
        exit;
    }
    
    catch(PDOException $e){
        echo "<script>alert('An error occurred while creating the user. Please try again later.')</script>";
        exit;

    }
    
}

?>

**PARTIE LOGOUT:**


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7pk8dxvwux797jinsh00.PNG)


_CODE:_

<?php
$serveur = "localhost";
$utilisateur = "root";
$motdepasse = "";
$basededonnees = "compte2";
try {
    $connexion = new PDO("mysql:host=$serveur;dbname=$basededonnees", $utilisateur, $motdepasse );
    $connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    if ($_SERVER["REQUEST_METHOD"] == "POST" ) {
        $nom_utilisateur = $_POST["nom"];
        $email = $_POST["email"]; 
        $mot_de_passe = $_POST["password"];
        
        $requete = $connexion->prepare("SELECT * FROM utilisateur2 WHERE nom = :nom AND email = :email AND password = :password");
        $requete->bindParam(':nom', $nom_utilisateur);
        $requete->bindParam(':email', $email); 
        $requete->bindParam(':password', $mot_de_passe);
        $requete->execute();
        
        if ($requete->rowCount() == 1) {
            $newWebsite = "http://localhost/PROJET2/deconnexion.php"; 
            header("Location: $newWebsite");
            exit; 
        } else {
            echo "Nom d'utilisateur ou Email ou mot de passe incorrect.";
        }
    }
} catch(PDOException $e) {
    echo "La connexion à la base de données a échoué : " . $e->getMessage();
}
?>