connection + deconnection fonctionnelles

inscription-connection
Leo Tuaillon 1 year ago
parent 959b9cf0d0
commit a9afecf68a

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

@ -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;
}

@ -12,5 +12,6 @@ $twig = new \Twig\Environment($loader, [
'cache' => false, 'cache' => false,
'debug' => true 'debug' => true
]); ]);
$twig->addExtension(new \Twig\Extension\DebugExtension());
$cont = new \App\controleur\FrontControleur(); $cont = new \App\controleur\FrontControleur();
//end session

@ -16,7 +16,7 @@ class FrontControleur
//TODO //TODO
], ],
"Membre" => [ "Membre" => [
"deconnexion","proposerOffre","consulterProfil","modifierProfil","signaler" "deconnection","proposerOffre","consulterProfil","modifierProfil","signaler",
], ],
"Utilisateur" => [ "Utilisateur" => [
"connection", "inscription", "accueil","consulterProfilLimite" "connection", "inscription", "accueil","consulterProfilLimite"
@ -41,10 +41,11 @@ class FrontControleur
} }
} }
else if(in_array($action,$actions['Membre'])) { else if(in_array($action,$actions['Membre'])) {
if (!isset($_SESSION["login"])) { if (!isset($_SESSION["utilisateur"])) {
$dVueErreur[] = 'Veuillez vous connecter'; $dVueErreur[] = 'Veuillez vous connecter';
echo $twig->render('erreur.html', ['dVueErreur' => $dVueErreur]); echo $twig->render('erreur.html', ['dVueErreur' => $dVueErreur]);
} else{ } else{
echo "controlleur membre instancié";
new MembreControleur(); new MembreControleur();
} }
}else{ }else{

@ -12,8 +12,8 @@ class MembreControleur extends UtilisateurControleur
$action = \App\config\Validation::nettoyerString($_REQUEST["action"]); $action = \App\config\Validation::nettoyerString($_REQUEST["action"]);
} }
switch ($action) { switch ($action) {
case "deconnexion": case "deconnection":
$this->deconnexion(); $this->deconnection();
break; break;
case "proposerOffre": case "proposerOffre":
$this->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() protected function proposerOffre()

@ -28,7 +28,7 @@ class UtilisateurControleur
$this->consulterProfilLimite(); $this->consulterProfilLimite();
break; break;
default: default:
$dVueErreur[] ="Action inconnue ou non autorisée"; $dVueErreur[] ="Action rjhghuiergiuhou non autorisée";
echo $twig->render("erreur.html",['dVueErreur' => $dVueErreur]); echo $twig->render("erreur.html",['dVueErreur' => $dVueErreur]);
} }
@ -89,9 +89,17 @@ class UtilisateurControleur
protected function accueil() protected function accueil()
{ {
global $twig; 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() protected function consulterProfilLimite()
{ {
//TODO //TODO

@ -69,6 +69,12 @@ class AlumniGateway
':e' => array($email, PDO::PARAM_STR), ':e' => array($email, PDO::PARAM_STR),
)); ));
$res=$this->con->getResults(); $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']); return new \App\metier\Alumni($res[0]['mail'],$res[0]['mdp'],$res[0]['role']);
} }

@ -18,7 +18,7 @@ class UtilisateurModele
* @param string hash * @param string hash
* @return \App\metier\Alumni * @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"; $dsn = "mysql:host=localhost;dbname=dbAlica";
$username = "Dev"; $username = "Dev";
@ -32,14 +32,15 @@ class UtilisateurModele
// L'utilisateur existe, vérifiez le mot de passe // L'utilisateur existe, vérifiez le mot de passe
if ($hash==$utilisateur->getPassword()) { if ($hash==$utilisateur->getPassword()) {
// Le mot de passe est correct, retournez l'utilisateur // Le mot de passe est correct, retournez l'utilisateur
session_start();
return $utilisateur; return $utilisateur;
} else { } else {
// Le mot de passe est incorrect, renvoyez null // Le mot de passe est incorrect, renvoyez null
return new \App\metier\Alumni(null, null, null); return null;
} }
} else { } else {
// L'utilisateur n'existe pas, renvoyez null // 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"; $username = "Dev";
$password = "Dev"; $password = "Dev";
$role = "Utilisateur"; $role = "Membre";
$con = new \App\gateway\Connection($dsn, $username, $password); $con = new \App\gateway\Connection($dsn, $username, $password);
$gate = new \App\gateway\AlumniGateway($con); $gate = new \App\gateway\AlumniGateway($con);
// Insérez le nouvel utilisateur dans la base de données en utilisant AlumniGateway // Insérez le nouvel utilisateur dans la base de données en utilisant AlumniGateway

@ -9,9 +9,16 @@
<body> <body>
<header>
{% include 'menu.html' %}
</header>
<h1>Accueil</h1> <h1>Accueil</h1>
<!-- Bienvenu suivie du mail des informations sessions de l'utilisateur --> <!-- 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 êtes sur la page d'accueil</p>
<p>Vous pouvez vous connecter ou vous inscrire</p> <p>Vous pouvez vous connecter ou vous inscrire</p>
<p>Vous pouvez aussi consulter les articles</p> <p>Vous pouvez aussi consulter les articles</p>

@ -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>
Loading…
Cancel
Save