Ajout connexion DB + pseudo dans session + case login/disconnect

correction_routeur
Alix JEUDI--LEMOINE 1 year ago
parent 7dce372ea0
commit 25ff6cd6f8

@ -1,23 +1,33 @@
<?php <?php
namespace controller; namespace controller;
use config\Validation;
use model\Connection;
use model\UserGateway;
class FrontController class FrontController
{ {
public function __construct() public function __construct()
{ {
global $twig; global $twig;
session_start(); $con = new Connection("mysql:host=mysql;dbname=iut", "aljeudilem", "22061337");
// Tableau qui contient les messages d'erreur // Tableau qui contient les messages d'erreur
$dVueErreur = []; $dVueErreur = [];
$dVue = [];
session_start();
if(isset($_SESSION['pseudo']))
$dVue['pseudo'] = $_SESSION['pseudo'];
try { try {
$action = $_REQUEST['action'] ?? null; $action = $_REQUEST['action'] ?? null;
switch($action) { switch($action) {
case null: case null:
echo $twig->render('accueil.html'); echo $twig->render('accueil.html', ['dVue' => $dVue]);
break; break;
case 'join': case 'join':
echo $twig->render('join.html'); echo $twig->render('join.html');
@ -26,11 +36,33 @@ class FrontController
$this->CreateParty(); $this->CreateParty();
break; break;
case 'validationFormulaire': case 'validationFormulaire':
$this->ValidationFormulaire($dVueErreur); $this->ValidationFormulaire($dVueErreur, $dVue);
break; break;
case 'admin': case 'admin':
new AdminController(); new AdminController();
break; break;
case 'login':
if(empty($_SESSION) && !isset($_REQUEST['login']))
echo $twig->render('login.html');
elseif(isset($_REQUEST['login'])) {
Validation::valUserLogin($_REQUEST['login'], $dVueErreur);
$ug = new UserGateway($con);
if($ug->login($_REQUEST['login'], $_REQUEST['password'])) {
$_SESSION['pseudo'] = $_REQUEST['login'];
header("Location: .");
} else {
$dVueErreur[] = "Connexion échouée";
throw new LoginException("Connexion err");
}
} else
header("Location: .");
break;
case 'disconnect':
session_unset();
session_destroy();
$_SESSION = array();
header("Location: .");
break;
//mauvaise action //mauvaise action
default: default:
$dVueErreur[] = "Erreur d'appel php"; $dVueErreur[] = "Erreur d'appel php";
@ -40,6 +72,9 @@ class FrontController
} catch (\PDOException $e) { } catch (\PDOException $e) {
$dVueErreur[] = 'Erreur avec la base de données !'; $dVueErreur[] = 'Erreur avec la base de données !';
echo $twig->render('erreur.html', ['dVueErreur' => $dVueErreur]); echo $twig->render('erreur.html', ['dVueErreur' => $dVueErreur]);
} catch (LoginException $e) {
echo $twig->render('erreur.html', ['dVueErreur' => $dVueErreur]);
echo $twig->render('login.html');
} catch (\Exception $e2) { } catch (\Exception $e2) {
$dVueErreur[] = 'Erreur inattendue !'; $dVueErreur[] = 'Erreur inattendue !';
echo $twig->render('erreur.html', ['dVueErreur' => $dVueErreur]); echo $twig->render('erreur.html', ['dVueErreur' => $dVueErreur]);
@ -56,7 +91,7 @@ class FrontController
echo $twig->render('create.html', ['dVueCreate' => $dVueCreate]); echo $twig->render('create.html', ['dVueCreate' => $dVueCreate]);
} }
public function ValidationFormulaire(array &$dVueErreur) public function ValidationFormulaire(array &$dVueErreur, array &$dVue)
{ {
global $twig; global $twig;
@ -64,9 +99,7 @@ class FrontController
$difficulty = $_POST['difficulty'] ?? ''; $difficulty = $_POST['difficulty'] ?? '';
\config\Validation::val_form($game, $difficulty, $dVueErreur); \config\Validation::val_form($game, $difficulty, $dVueErreur);
$dVue = [ $dVue['info'] = "Jeu '$game' créé avec la difficulté $difficulty";
'info' => "Jeu '$game' créé avec la difficulté $difficulty"
];
echo $twig->render('accueil.html', ['dVue' => $dVue, 'dVueErreur' => $dVueErreur]); echo $twig->render('accueil.html', ['dVue' => $dVue, 'dVueErreur' => $dVueErreur]);
} }

@ -0,0 +1,7 @@
<?php
namespace controller;
class LoginException extends \Exception
{
}
Loading…
Cancel
Save