From a9afecf68a2b3f6033314ca196465981c24fa839 Mon Sep 17 00:00:00 2001 From: Leo Tuaillon <tleodev@MacBook-Air-de-Leo.local> Date: Tue, 7 Nov 2023 14:19:56 +0100 Subject: [PATCH] connection + deconnection fonctionnelles --- php/public/assets/logo.png | Bin 0 -> 34574 bytes php/public/css/menu.css | 145 +++++++++++++++++++ php/public/index.php | 5 +- php/src/controleur/FrontControleur.php | 5 +- php/src/controleur/MembreControleur.php | 10 +- php/src/controleur/UtilisateurControleur.php | 12 +- php/src/gateway/AlumniGateway.php | 6 + php/src/modele/UtilisateurModele.php | 9 +- php/templates/accueil.html | 9 +- php/templates/menu.html | 37 +++++ 10 files changed, 223 insertions(+), 15 deletions(-) create mode 100644 php/public/assets/logo.png create mode 100644 php/public/css/menu.css create mode 100644 php/templates/menu.html diff --git a/php/public/assets/logo.png b/php/public/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d272825ec4ee1bc80e6dc583deb622b0fe860cb2 GIT binary patch literal 34574 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 HfAaqUe7xV0 literal 0 HcmV?d00001 diff --git a/php/public/css/menu.css b/php/public/css/menu.css new file mode 100644 index 0000000..6ab9e3d --- /dev/null +++ b/php/public/css/menu.css @@ -0,0 +1,145 @@ +a { + text-decoration: none; +} + +.navbar-container { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 2rem; + width: 100%; + height: 70px; + background: #fff; + color: #212121; + position: sticky; + top: 0; + left: 0; + z-index: 100; +} + +.navbar-container .logo-container a { + font-size: 1.5rem; + font-weight: 500; + font-family: 'Kanit', sans-serif; + text-transform: uppercase; + cursor: pointer; + color: #212121; + max-height: 70px; +} + +.navbar-container .nav-items { + display: flex; + align-items: center; + gap: 3rem; + list-style: none; +} + +.navbar-container .nav-items .nav-link a { + color: #212121; + padding: 10px; + text-transform: uppercase; + transition: 0.2s; +} + +.navbar-container .nav-items .nav-link:after { + content: ''; + display: block; + border-top: 3px solid #00DBFF; + transform: scaleX(0); + transition: transform 250ms ease-in-out; +} + +.navbar-container .nav-items .nav-link:hover:after { + transform: scaleX(0.8); +} + +.navbar-container .nav-items .login-register { + display: flex; + flex-direction: row; + gap: 1rem; +} + +.navbar-container .nav-items .login-register .button { + color: #00DBFF; + padding: 5px 20px; + text-transform: uppercase; + border-radius: 15px; + border: #fff 2px solid; +} + +.navbar-container .nav-items .login-register .button2{ + background: #00DBFF; + color: #fff; + border-radius: 15px; +} + +.navbar-container .nav-items .login-register .button:hover { + border: #00DBFF 2px solid; +} + +.navbar-container .nav-items .login-register .button2:hover { + border: #00A4FF 2px solid; +} + +@media(max-width: 1030px) { + .navbar-container { + padding: 0 1rem; + } + + .navbar-container .nav-items { + gap: 0.1rem; + } + + .navbar-container .nav-items .nav-link a, + .navbar-container .nav-items .login-register .button { + font-size: 0.9rem; + } +} + +@media(max-width: 915px) { + .navbar-container .nav-items { + flex-direction: column; + position: fixed; + top: 70px; + right: -100%; + width: 100vw; + height: 100vh; + padding: 1rem 0; + z-index: 99; + background: #fff; + transition: 0.2s ease-in; + } + + .bars { + width: 22px; + height: auto; + cursor: pointer; + } + + .bars .bar { + width: 100%; + height: 2px; + background: #212121; + margin: 5px; + } + + .navbar-container .nav-items { + gap: 3rem; + } + + .navbar-container .nav-items .login-register { + width: 50%; + text-align: center; + flex-direction: column; + gap: 2rem; + } + + .navbar-container .nav-items .login-register .button { + padding: 1rem 0; + } + +} + +.navbar-container .nav-items.active { + right: 0; +} \ No newline at end of file diff --git a/php/public/index.php b/php/public/index.php index 8a015ce..6158841 100755 --- a/php/public/index.php +++ b/php/public/index.php @@ -12,5 +12,6 @@ $twig = new \Twig\Environment($loader, [ 'cache' => false, 'debug' => true ]); - -$cont = new \App\controleur\FrontControleur(); \ No newline at end of file +$twig->addExtension(new \Twig\Extension\DebugExtension()); +$cont = new \App\controleur\FrontControleur(); +//end session \ No newline at end of file diff --git a/php/src/controleur/FrontControleur.php b/php/src/controleur/FrontControleur.php index 0fe94ad..791f1f5 100755 --- a/php/src/controleur/FrontControleur.php +++ b/php/src/controleur/FrontControleur.php @@ -16,7 +16,7 @@ class FrontControleur //TODO ], "Membre" => [ - "deconnexion","proposerOffre","consulterProfil","modifierProfil","signaler" + "deconnection","proposerOffre","consulterProfil","modifierProfil","signaler", ], "Utilisateur" => [ "connection", "inscription", "accueil","consulterProfilLimite" @@ -41,10 +41,11 @@ class FrontControleur } } else if(in_array($action,$actions['Membre'])) { - if (!isset($_SESSION["login"])) { + if (!isset($_SESSION["utilisateur"])) { $dVueErreur[] = 'Veuillez vous connecter'; echo $twig->render('erreur.html', ['dVueErreur' => $dVueErreur]); } else{ + echo "controlleur membre instancié"; new MembreControleur(); } }else{ diff --git a/php/src/controleur/MembreControleur.php b/php/src/controleur/MembreControleur.php index c0b83ff..f73641d 100755 --- a/php/src/controleur/MembreControleur.php +++ b/php/src/controleur/MembreControleur.php @@ -12,8 +12,8 @@ class MembreControleur extends UtilisateurControleur $action = \App\config\Validation::nettoyerString($_REQUEST["action"]); } switch ($action) { - case "deconnexion": - $this->deconnexion(); + case "deconnection": + $this->deconnection(); break; case "proposerOffre": $this->proposerOffre(); @@ -32,9 +32,11 @@ class MembreControleur extends UtilisateurControleur } } - protected function deconnexion() + protected function deconnection() { - //TODO + session_destroy(); + header('Location: index.php?action=accueil'); + exit(); } protected function proposerOffre() diff --git a/php/src/controleur/UtilisateurControleur.php b/php/src/controleur/UtilisateurControleur.php index 5df7d7d..2bf0eea 100755 --- a/php/src/controleur/UtilisateurControleur.php +++ b/php/src/controleur/UtilisateurControleur.php @@ -28,7 +28,7 @@ class UtilisateurControleur $this->consulterProfilLimite(); break; default: - $dVueErreur[] ="Action inconnue ou non autorisée"; + $dVueErreur[] ="Action rjhghuiergiuhou non autorisée"; echo $twig->render("erreur.html",['dVueErreur' => $dVueErreur]); } @@ -89,9 +89,17 @@ class UtilisateurControleur protected function accueil() { global $twig; - echo $twig->render('accueil.html', []); + // Ajout d'un var_dump pour déboguer + if (isset($_SESSION['utilisateur']) && $_SESSION['utilisateur'] instanceof \App\metier\Alumni) { + $pseudo = $_SESSION['utilisateur']->getEmail(); // ou getPseudo() si la méthode existe + } else { + $pseudo = null; + } + + echo $twig->render('accueil.html', ['pseudo' => $pseudo]); } + protected function consulterProfilLimite() { //TODO diff --git a/php/src/gateway/AlumniGateway.php b/php/src/gateway/AlumniGateway.php index 9f140bc..59b9033 100644 --- a/php/src/gateway/AlumniGateway.php +++ b/php/src/gateway/AlumniGateway.php @@ -69,6 +69,12 @@ class AlumniGateway ':e' => array($email, PDO::PARAM_STR), )); $res=$this->con->getResults(); + var_dump($res); + if(count($res)==0){ + echo "Aucun utilisateur trouvé"; + return null; + } + echo "Utilisateur trouvé"; return new \App\metier\Alumni($res[0]['mail'],$res[0]['mdp'],$res[0]['role']); } diff --git a/php/src/modele/UtilisateurModele.php b/php/src/modele/UtilisateurModele.php index e11d866..b4f7cff 100755 --- a/php/src/modele/UtilisateurModele.php +++ b/php/src/modele/UtilisateurModele.php @@ -18,7 +18,7 @@ class UtilisateurModele * @param string hash * @return \App\metier\Alumni */ - public function connection(string $email, string $hash) : \App\metier\Alumni + public function connection(string $email, string $hash) : ? \App\metier\Alumni { $dsn = "mysql:host=localhost;dbname=dbAlica"; $username = "Dev"; @@ -32,14 +32,15 @@ class UtilisateurModele // L'utilisateur existe, vérifiez le mot de passe if ($hash==$utilisateur->getPassword()) { // Le mot de passe est correct, retournez l'utilisateur + session_start(); return $utilisateur; } else { // Le mot de passe est incorrect, renvoyez null - return new \App\metier\Alumni(null, null, null); + return null; } } else { // L'utilisateur n'existe pas, renvoyez null - return new \App\metier\Alumni(null, null, null); + return null; } } @@ -56,7 +57,7 @@ class UtilisateurModele $username = "Dev"; $password = "Dev"; - $role = "Utilisateur"; + $role = "Membre"; $con = new \App\gateway\Connection($dsn, $username, $password); $gate = new \App\gateway\AlumniGateway($con); // Insérez le nouvel utilisateur dans la base de données en utilisant AlumniGateway diff --git a/php/templates/accueil.html b/php/templates/accueil.html index 18b3aa3..87ab6bb 100755 --- a/php/templates/accueil.html +++ b/php/templates/accueil.html @@ -9,9 +9,16 @@ <body> + <header> + {% include 'menu.html' %} + </header> <h1>Accueil</h1> <!-- Bienvenu suivie du mail des informations sessions de l'utilisateur --> - <p>Bienvenue {{session.mail}}</p> + <p>{% if pseudo %} + Bienvenue, {{ pseudo }}! + {% else %} + Bienvenue, invité! + {% endif %}</p> <p>Vous êtes sur la page d'accueil</p> <p>Vous pouvez vous connecter ou vous inscrire</p> <p>Vous pouvez aussi consulter les articles</p> diff --git a/php/templates/menu.html b/php/templates/menu.html new file mode 100644 index 0000000..603ceea --- /dev/null +++ b/php/templates/menu.html @@ -0,0 +1,37 @@ +<!DOCTYPE html> +<html lang="fr"> +<head> + <link rel="stylesheet" type="text/css" href="../public/css/menu.css"> + <title></title> +</head> +<nav class="navbar-container"> + <div class="logo-container"> + <a href="index.php"> + <img src="assets/logo.png" alt="Logo" height="70px"> + </a> + </div> + <div class="bars"> + <div class="bar"></div> + <div class="bar"></div> + <div class="bar"></div> + </div> + <ul class="nav-items"> + <li class="nav-link"><a href="#">A propos</a></li> + <li class="nav-link"><a href="#">Evenements</a></li> + <li class="nav-link"><a href="#">Offres</a></li> + <li class="nav-link"><a href="#">Nous contacter</a></li> + </ul> + <ul class="nav-items"> + <!-- Afficher boutons de connexion et d'inscription --> + {% if pseudo %} + <!-- Afficher bouton de déconnexion --> + <a href="index.php?action=deconnection" class="button">Déconnexion</a> + {% else %} + <div class="login-register"> + <a href="index.php?action=connection" class="button">Connexion</a> + <a href="index.php?action=inscription" class="button button2">Inscription</a> + </div> + {% endif %} + </ul> +</nav> +</html> \ No newline at end of file