Authentication works

This commit is contained in:
BRAMAS Arthur
2025-10-10 10:21:27 +02:00
parent df07d7f42f
commit ee976b8a6e
6 changed files with 137 additions and 32 deletions

View File

@@ -0,0 +1,54 @@
<?php
class AuthController {
public function helloWorld() {
echo "helloworld";
}
public function displayConnForm() {
include __DIR__."/../view/ConnForm.php";
}
public function handleConnForm() {
session_start();
require_once __DIR__."/../utils_inc/inc_pdo.php"; // $pdo existe ici désormais
// http://localhost/contribs/traiterAuthentification.php?login=M001&pass=123
// Recevoir les données du form de login, et vérifier login/pass dans la base
// En version finale : envoi en $_POST obligatoire. Pour le dev $_GET peut être plus pratique.
$login = $_POST["login"];
$pass = $_POST["pass"];
// Vérification dans la base si le mot de passe et le login se trouvent dans la base
// VERSION mot de passe chiffré
$textR = "select droit, password ";
$textR.= "from membre ";
$textR.= "where id=:login ";
$req = $pdo->prepare($textR);
$req->bindParam(":login", $login);
$req->execute();
// 2 possibilités : 1 ligne retournée ou 0 ligne retournée
$tabRes = $req->fetchAll(PDO::FETCH_ASSOC);
if (count($tabRes)!=1) {
// pas trouvé => retour au formulaire de co
// die("Erreur de co");
header("Location:../index.php?message=tekitoa");
exit();
}
// Si on arrive là : login existe (count==1)
if (!password_verify($pass, $tabRes[0]["password"])){
// die("Erreur de co");
header("Location:../index.php?message=tekitoa");
exit();
}
$_SESSION["login"] = $login;
$_SESSION["droit"] = $tabRes[0]["droit"];
// redirection vers accueil, éventuellement spécifique à l'utilisateur
header("Location:../view/home.php");
}
}

View File

@@ -1,36 +1,34 @@
<?php
require_once __DIR__."/../controller/AuthController.php";
?>
define("BASE_URL","/contribEvo/");
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/styles.css" rel="stylesheet">
<title>Connexion</title>
</head>
//index.php?route=maRoute&param1=truc
// => receive get route
<body class="container">
<div class="row justify-content-center">
<div class="col-md-4">
<form id="formLogin" action="traitements/traiterAuthentification.php" method="post">
<h3 class="text-center">Identifiez-vous</h3>
<div class="form-group">
<label for="id">Login :</label><br>
<input type="text" name="login" id="id" class="form-control">
</div>
<div class="form-group">
<label for="mdp">Pass :</label><br>
<input type="password" name="pass" id="mdp" class="form-control">
</div>
<br>
<div class="form-group text-end">
<input type="submit" name="submit" class="btn btn-primary btn-md" value="Valider">
</div>
</form>
</div>
</div>
</body>
</html>
$route = isset($_GET["route"])? $_GET["route"] : null;
/*
if (isset($_GET["route"])) {
$route = $_GET["route"]
} else {
$route = null;
}
*/
if ($route=="helloworld") {
$ctr = new AuthController();
$ctr->helloWorld();
exit();
}
if ($route=="displayConnForm") {
$ctr = new AuthController();
$ctr->displayConnForm();
exit();
}
if ($route=="handleConnForm") {
$ctr = new AuthController();
$ctr->handleConnForm();
exit();
}

3
utils_inc/inc_pdo.php Normal file
View File

@@ -0,0 +1,3 @@
<?php
$pdo = new PDO('mysql:host=mysqlsrv;dbname=contrib', "contrib_root", "123abc");

36
view/ConnForm.php Normal file
View File

@@ -0,0 +1,36 @@
<?php
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/styles.css" rel="stylesheet">
<title>Connexion</title>
</head>
<body class="container">
<div class="row justify-content-center">
<div class="col-md-4">
<form id="formLogin" action="index.php?route=handleConnForm" method="post">
<h3 class="text-center">Identifiez-vous</h3>
<div class="form-group">
<label for="id">Login :</label><br>
<input type="text" name="login" id="id" class="form-control">
</div>
<div class="form-group">
<label for="mdp">Pass :</label><br>
<input type="password" name="pass" id="mdp" class="form-control">
</div>
<br>
<div class="form-group text-end">
<input type="submit" name="submit" class="btn btn-primary btn-md" value="Valider">
</div>
</form>
</div>
</div>
</body>
</html>

14
view/home.php Normal file
View File

@@ -0,0 +1,14 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link href="../css/bootstrap.min.css" rel="stylesheet">
<script src="../js/bootstrap.bundle.min.js"></script>
</head>
<body class="container">
<?php include "../utils_inc/inc_navbar.php"; ?>
<h1>Hello et bienvenue, co OK.</h1>
</body>
</html>