Commit c78a1204 authored by victorfriboulet07's avatar victorfriboulet07
Browse files

Merge remote-tracking branch 'origin/main' into liste-filtrée

parents 7fb6ce8f d0b51680
Loading
Loading
Loading
Loading
+51.4 KiB
Loading image diff...
+27 −3
Original line number Diff line number Diff line
@@ -9,8 +9,13 @@
require_once 'src/controllers/controleur.php';
require_once 'src/controllers/listeRecettes.php';
require_once 'src/controllers/accueil.php';
require_once 'src/controllers/pageRecette.php';
require_once 'src/controllers/pageConnexion.php';
require_once 'src/controllers/connexion.php';

try{
    session_start();

    // Si 'action' n'est pas défini, on charge la page d'accueil
    if(! isset($_GET['action']) || empty($_GET['action'])){
        $accueil = new AccueilControleur();
@@ -18,22 +23,41 @@ try{
        return;
    }


    $controleur = null;
    // On teste les différentes valeurs possible de 'action'
    // Si ça ne correspond à aucune page, on renvoie vers la page d'erreur
    // (pour l'instant on a pas d'autre page, donc on retourne forcément une erreur)
    switch($_GET['action']){
        case 'listeRecettes':
            $controller = new ListeRecettesControleur;
            $controller->executer();
            $controleur = new ListeRecettesControleur;
            break;

        case 'test':
            require 'test/tests.php';
            exit();

        case 'pageConnexion':
            $controleur = new PageConnexionControleur();
            break;

        case 'erreurConnexion':
            $controleur = new PageConnexionControleur(true);
            break;

        case 'connexion':
            $controleur = new ConnexionController();
            break;

        case 'detail-recette':
            $controleur = new PageRecetteControleur();
            break;

        default:
            throw new Exception("la page demandée n'a pas été trouvée");
    }

    $controleur->executer();
}
catch(Exception $e){
    $messageErreur = $e->getMessage();
+48 −0
Original line number Diff line number Diff line
<?php

require_once 'src/controllers/controleur.php';

require_once 'src/model/utilisateur.php';
require_once 'src/model/utilisateurManager.php';

class ConnexionController extends Controleur {
    private static $utilisateur = null;
    private static $execute = false;

    public function executer() {
        if(! isset($_POST['identifiant']) || ! isset($_POST['motDePasse'])) {
            throw new Exception('Un des champs est manquant pour la connexion.');
        }

        $utilisateur = (new UtilisateurManager)->connecter($_POST['identifiant'], $_POST['motDePasse']);

        if(is_null($utilisateur)) {
            header('Location: .?action=erreurConnexion');
            exit();
        }

        $_SESSION['idUtilisateur'] = $utilisateur->getId();

        if(isset($_SESSION['dernierePage'])){
            header('Location: '. $_SESSION['dernierePage']);
            exit();
        }

        header('Location: .');
    }

    public static function estConnecte() {
        if(self::$execute) {
            return self::$utilisateur;
        }
        self::$execute = true;
        
        if(! isset($_SESSION['idUtilisateur'])) {
            return false;
        }

        self::$utilisateur = (new UtilisateurManager)->getUtilisateur($_SESSION['idUtilisateur']);

        return self::$utilisateur;
    }
}
 No newline at end of file
+16 −0
Original line number Diff line number Diff line
<?php

require_once 'src/controllers/controleur.php';
require_once 'templates/connexion.php';

class PageConnexionControleur extends Controleur { 
    private $loginIncorrect;

    public function __construct($loginIncorrect = false) {
        $this->loginIncorrect = $loginIncorrect;
    }

    public function executer(){
        afficherPageConnexion($this->loginIncorrect);
    }
}
 No newline at end of file
+16 −0
Original line number Diff line number Diff line
<?php

require_once 'src/controllers/controleur.php';

require_once 'src/model/recette.php';
require_once 'src/model/recetteManager.php';

require_once 'templates/pageRecette.php';

class PageRecetteControleur extends Controleur {
    public function executer() {
        $recette = (new RecetteManager)->getRecette('1');

        afficherPageRecette($recette);
    }
}
 No newline at end of file
Loading