Merge branch 'main' of github.com:nonot345/SAE_203_Gestion_des_sauveteurs

This commit is contained in:
PREBOST kylian 2026-06-08 14:56:44 +02:00
commit f922b1df11
10 changed files with 92 additions and 29 deletions

View file

@ -1,5 +0,0 @@
<?php
define('HOST', '192.168.156.221');
define('DB', 'projet3_tp1');
define('USER', 'rdealmei');
define('PASSWORD', 'RT2026');

View file

@ -1,11 +1,9 @@
<?php <?php
function login_ctrl() { function login_ctrl() {
$ask_route = null; $ask_route = null;
if (isset($_GET['ask'])) { if (isset($_GET['ask'])) {
$ask_route = htmlentities($_GET['ask']); $ask_route = htmlentities($_GET['ask']);
} }
if ($_SERVER['REQUEST_METHOD'] == 'POST') { if ($_SERVER['REQUEST_METHOD'] == 'POST') {
verify_login_ctrl($ask_route); verify_login_ctrl($ask_route);
} else { } else {
@ -14,16 +12,14 @@ function login_ctrl() {
} }
function verify_login_ctrl(?string $route) { function verify_login_ctrl(?string $route) {
require('models/connection.php');
require('models/user_crud.php');
$login = isset($_POST['login']) ? htmlentities($_POST['login']) : ''; $login = isset($_POST['login']) ? htmlentities($_POST['login']) : '';
$passwd = isset($_POST['password']) ? $_POST['password'] : ''; $passwd = isset($_POST['password']) ? $_POST['password'] : '';
require('models/connection.php');
$c = connection(); $c = connection();
require('models/user_crud.php');
$user = recuperation_auth($c, $login); $user = recuperation_auth($c, $login);
if ($user && password_verify($passwd, $user['passwd'])) { if ($user && password_verify($passwd, $user['passwd'])) {
session_regenerate_id(true);
$_SESSION['login'] = $user['login']; $_SESSION['login'] = $user['login'];
$_SESSION['role'] = $user['type']; $_SESSION['role'] = $user['type'];
header('Location: index.php?route=' . $route); header('Location: index.php?route=' . $route);
@ -40,7 +36,8 @@ function login_form_ctrl(?string $route) {
} }
function logout_ctrl() { function logout_ctrl() {
unset($_SESSION); session_unset();
session_destroy(); session_destroy();
setcookie(session_name(), '', time() - 3600, '/');
require('views/welcome_view.php'); require('views/welcome_view.php');
} }

View file

@ -0,0 +1,48 @@
<?php
function login_ctrl() {
$ask_route = null;
if (isset($_GET['ask'])) {
$ask_route = htmlentities($_GET['ask']);
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
verify_login_ctrl($ask_route);
} else {
login_form_ctrl($ask_route);
}
}
function verify_login_ctrl(?string $route) {
$login = isset($_POST['login']) ? htmlentities($_POST['login']) : '';
$passwd = isset($_POST['password']) ? $_POST['password'] : '';
require('models/connection.php');
require('models/user_crud.php');
$c = connection();
$user = recuperation_auth($c, $login);
if ($user && password_verify($passwd, $user['passwd'])) {
$_SESSION['login'] = $user['login'];
$_SESSION['role'] = $user['type'];
header('Location: index.php?route=' . $route);
exit;
} else {
echo 'Erreur d\'authentification.';
exit;
}
}
function login_form_ctrl(?string $route) {
require('views/login_views.php');
login_form_view($route);
}
function logout_ctrl() {
unset($_SESSION);
session_destroy();
require('views/welcome_view.php');
}

View file

@ -2,7 +2,7 @@
function planning_afficher_ctrl() { function planning_afficher_ctrl() {
require('models/connection.php'); require('models/connection.php');
$c = connection(); $co = connection();
require('models/planning_model.php'); require('models/planning_model.php');
$date = $_GET['date'] ?? date('Y-m-d'); $date = $_GET['date'] ?? date('Y-m-d');

View file

@ -1 +0,0 @@

View file

@ -11,4 +11,4 @@ function connection() {
//Db connection //Db connection
$connex = new PDO('mysql:host=' . HOST . ';dbname=' . DB,USER , PASSWORD); $connex = new PDO('mysql:host=' . HOST . ';dbname=' . DB,USER , PASSWORD);
return $connex; return $connex;
} }

14
models/connection.php~ Normal file
View file

@ -0,0 +1,14 @@
<?php
/**
* Create a PDO connection
* @return PDO
*/
function connection() {
//Loads config from file config.php
require('config/config.php');
//Db connection
$connex = new PDO('mysql:host=' . HOST . ';dbname=' . DB,USER , PASSWORD);
return $connex;
}

View file

@ -1,11 +1,16 @@
<?php <?php
function recuperation_auth(PDO $c, string $login): ?array {
function recuperation_auth(PDO $connex, int $id):array {
require('config/config.php');
$req = "SELECT login, passwd, type FROM Utilisateur WHERE login = :login"; $req = "SELECT login, passwd, type FROM Utilisateur WHERE login = :login";
$prep = $c->prepare($req);
$prep->bindValue(':login', $login); $prep = $connex->prepare($req);
$prep->bindValue(':id', $id);
$prep->execute(); $prep->execute();
$auth = $prep->fetch(PDO::FETCH_ASSOC); $auth = $prep->fetch(PDO::FETCH_ASSOC);
$prep->closeCursor(); $prep->closeCursor();
return $auth ?: null; return $auth;
} }

View file

@ -1,5 +1,8 @@
<?php <?php
error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED);
ini_set('display_errors', 1);
function planning_view(array $sauveteurs, array $creneaux, array $grille, string $date) { function planning_view(array $sauveteurs, array $creneaux, array $grille, string $date) {
?> ?>
<!DOCTYPE html> <!DOCTYPE html>

View file

@ -1,15 +1,17 @@
<?php <?php
#ceci est la partie "view" de la page de login, le header et le footer ne sont pour l'instant pas actif
error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED);
ini_set('display_errors', 1);
function login_form_view(?string $route) { function login_form_view(?string $route) {
require('views/header.php'); #require('header.php');
echo '<h2>Page d\'authentification</h2>'; echo '<h2>Page d\'authentification</h2>';
echo '<p>Merci de vous authentifier pour accéder à cette fonctionnalité.</p>';
echo '<form action="index.php?route=auth&ask=' . $route . '" method="post">'; echo '<form action="index.php?route=auth&ask=' . $route . '" method="post">';
echo '<p><label>Login :</label> <input type="text" name="login"></p>'; echo '<p>Login<input type="text" name="login" /></p>';
echo '<p><label>Mot de passe :</label> <input type="password" name="password"></p>'; echo '<p>Mot de passe<input type="passwd" name="password" /></p>';
echo '<p><input type="submit" value="Valider"></p>'; echo '<p><input type="submit" value="Valider" /></form>';
echo '</form>';
require('views/footer.php'); #require('footer.php');
} }