From 93eae019d88f11195be27ef6a3290a803ce76971 Mon Sep 17 00:00:00 2001
From: Eliah REBSTOCK <eliah.rebstock@ensiie.fr>
Date: Sat, 7 May 2016 22:41:26 +0200
Subject: [PATCH] =?UTF-8?q?Formulaire=20modifi=C3=A9=20pour=20avoir=20une?=
 =?UTF-8?q?=20gestion=20des=20erreurs=20(WIP)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/controller/PartieController.php | 124 ++++++++++++++++++++--------
 app/view/Partie/displayStep0.html   |   4 +-
 app/view/Partie/displayStep1.html   |   3 +
 app/view/Partie/displayStep2.html   |   3 +
 app/view/Partie/displayStepe1.html  |   3 +
 app/view/Partie/displayStepe2.html  |   3 +
 6 files changed, 103 insertions(+), 37 deletions(-)

diff --git a/app/controller/PartieController.php b/app/controller/PartieController.php
index 6bbcf85..98e8ab8 100644
--- a/app/controller/PartieController.php
+++ b/app/controller/PartieController.php
@@ -10,6 +10,10 @@ class PartieController extends Controller
 {
     public function displayStep0()
     {
+        if(isset($_SESSION['errMsg'])){
+            $this->view->errMsg = $_SESSION['errMsg'];
+            unset($_SESSION['errMsg']);
+        }
         $this->view->liste = Jeu::getList();
         $this->view->display();
     }
@@ -19,7 +23,10 @@ class PartieController extends Controller
         session_start();
         if (!isset($_SESSION['jeu_select']))
             header("Location:../add_partie");
-
+        if(isset($_SESSION['errMsg'])){
+            $this->view->errMsg = $_SESSION['errMsg'];
+            unset($_SESSION['errMsg']);
+        }
         $this->view->jeuactuel = $_SESSION['jeu_select'];
         $this->view->listej = Profil::getList();
         $this->view->display();
@@ -32,7 +39,10 @@ class PartieController extends Controller
             header("Location:../add_partie");
         if (!isset($_SESSION['joueurs_select']))
             header("Location:../add_partie/step1");
-
+        if(isset($_SESSION['errMsg'])){
+            $this->view->errMsg = $_SESSION['errMsg'];
+            unset($_SESSION['errMsg']);
+        }
 
         $this->view->jeuactuel = $_SESSION['jeu_select'];
         $this->view->listejactuel = $_SESSION['joueurs_select'];
@@ -44,7 +54,10 @@ class PartieController extends Controller
         session_start();
         if (!isset($_SESSION['jeu_select']) || !isset($_SESSION['equipes']))
             header("Location:../add_partie");
-
+        if(isset($_SESSION['errMsg'])){
+            $this->view->errMsg = $_SESSION['errMsg'];
+            unset($_SESSION['errMsg']);
+        }
         $this->view->jeuactuel = $_SESSION['jeu_select'];
         $this->view->listej = Profil::getList();
         $this->view->equipes = $_SESSION['equipes'];
@@ -58,7 +71,10 @@ class PartieController extends Controller
             header("Location:../add_partie");
         if (!isset($_SESSION['equipes']))
             header("Location:../add_partie/stepe1");
-
+        if(isset($_SESSION['errMsg'])){
+            $this->view->errMsg = $_SESSION['errMsg'];
+            unset($_SESSION['errMsg']);
+        }
 
         $this->view->jeuactuel = $_SESSION['jeu_select'];
         $this->view->equipes = $_SESSION['equipes'];
@@ -70,18 +86,41 @@ class PartieController extends Controller
         $this->view->display();
     }
 
+    private static function error($errstr, $step){
+        session_start();
+        $_SESSION['errMsg'] = $errstr;
+        if($step == "step0"){
+            header("Location:../add_partie");
+        }
+        else if($step == "step1"){
+            header("Location:step1");
+        }
+        else if($step == "step2"){
+            header("Location:step2");
+        }
+        else if($step == "stepe1"){
+            header("Location:stepe1");
+        }
+        else if($step == "stepe2"){
+            header("Location:stepe2");
+        }
+        else{
+            header("Location:../add_partie");
+        }
+    }
+
     public static function verifyStep0()
     {
 
         if (!isset($_POST['jeu'])) {
             //appeler une fonction d'erreur
-            echo "<h1>Erreur : variables absentes</h1>";
+            self::error("<h1>Erreur : variables absentes</h1>", "step0");
             die();
         }
         $jeu = $_POST['jeu'];
 
         if (!Jeu::checkExistsNom($jeu)) {
-            echo "<h1>Erreur : le jeu entré est introuvable dans la BD.</h1>";
+            self::error("<h1>Erreur : le jeu entré est introuvable dans la BD.</h1>", "step0");
             die();
         }
 
@@ -100,17 +139,26 @@ class PartieController extends Controller
         session_start();
         if (!isset($_SESSION['jeu_select']))
             header("Location:../add_partie");
+
+        $jeu = $_SESSION['jeu_select'];
+
         if (!isset($_POST["joueur"])) {
-            echo "<h1>Erreur : pas de joueur entré.</h1>";
+            if ($jeu->type == 'equipes')
+                self::error("<h1>Erreur : pas de joueur entré.</h1>", "stepe1");
+            else
+                self::error("<h1>Erreur : pas de joueur entré.</h1>", "step1");
             die();
         }
-        $jeu = $_SESSION['jeu_select'];
+
         $joueur = $_POST["joueur"];
 
         if (Profil::checkExists($joueur)) {
             $joueur_objet = Profil::getFromSlug($joueur);
         } else {
-            echo "<h1>Erreur : le joueur est introuvable dans la base de données.</h1>";
+            if ($jeu->type == 'equipes')
+                self::error("<h1>Erreur : le joueur est introuvable dans la base de données.</h1>", "stepe1");
+            else
+                self::error("<h1>Erreur : le joueur est introuvable dans la base de données.</h1>", "step1");
             die();
         }
 
@@ -118,7 +166,7 @@ class PartieController extends Controller
             $ke = $_POST['equipejadd'];
             foreach ($_SESSION['equipes'] as $equipe) {
                 if (in_array($joueur_objet, $equipe)) {
-                    echo "<h1>Erreur : le joueur a déjà été inscrit pour cette partie.</h1>";
+                    self::error("<h1>Erreur : le joueur a déjà été inscrit pour cette partie.</h1>", "stepe1");
                     die();
                 }
             }
@@ -127,17 +175,15 @@ class PartieController extends Controller
         } else {
             if (!isset($_SESSION['joueurs_select'])) {
                 $_SESSION['joueurs_select'] = array($joueur_objet);
-                echo "<h1>L'ajout s'est bien passé.</h1>";
                 header("Location:step1");
             }
 
             if (!in_array($joueur_objet, $_SESSION['joueurs_select']))
                 array_push($_SESSION['joueurs_select'], $joueur_objet);
             else {
-                echo "<h1>Erreur : le joueur a déjà été inscrit pour cette partie.</h1>";
+                self::error("<h1>Erreur : le joueur a déjà été inscrit pour cette partie.</h1>", "step1");
                 die();
             }
-            echo "<h1>L'ajout s'est bien passé.</h1>";
             header("Location:step1");
         }
     }
@@ -177,7 +223,10 @@ class PartieController extends Controller
         }
 
         if (!isset($_POST['joueurdel'])) {
-            echo "<h1>Erreur : variables manquantes.</h1>";
+            if ($_SESSION['jeu_select']->type == 'equipes')
+            self::error("<h1>Erreur : variables manquantes.</h1>", "stepe1");
+            else
+                self::error("<h1>Erreur : variables manquantes.</h1>", "step1");
             die();
         }
 
@@ -206,12 +255,12 @@ class PartieController extends Controller
         if (!isset($_SESSION['equipes']))
             header("Location:stepe1");
         if (count($_SESSION['equipes']) <= 1) {
-            echo "<h1>Erreur : vous ne pouvez pas supprimer la seule équipe restante.</h1>";
+            self::error("<h1>Erreur : vous ne pouvez pas supprimer la seule équipe restante.</h1>", "stepe1");
             die();
         }
 
         if (!isset($_POST['equipe'])) {
-            echo "<h1>Erreur : variables manquantes.</h1>";
+            self::error("<h1>Erreur : variables manquantes.</h1>", "stepe1");
             die();
         }
 
@@ -229,7 +278,7 @@ class PartieController extends Controller
         if (!isset($_SESSION['jeu_select']))
             header("Location:../add_partie");
         if (count($_SESSION['equipes']) == $_SESSION['jeu_select']->max_equipes) {
-            echo "<h1>Erreur : vous ne pouvez pas créer d'équipe supplémentaire.</h1>";
+            self::error("<h1>Erreur : vous ne pouvez pas créer d'équipe supplémentaire.</h1>", "stepe1");
             die();
         }
 
@@ -248,24 +297,24 @@ class PartieController extends Controller
                 header("Location:stepe1");
             $equipes = $_SESSION['equipes'];
             if (count($equipes) < $jeu_actuel->min_equipes) {
-                echo "<h1>Erreur : il n'y a pas assez d'équipes.</h1>";
+                self::error("<h1>Erreur : il n'y a pas assez d'équipes.</h1>", "stepe1");
                 die();
             }
             if (count($equipes) > $jeu_actuel->max_equipes) {
-                echo "<h1>Erreur : il y a trop d'équipes.</h1>";
+                self::error("<h1>Erreur : il y a trop d'équipes.</h1>", "stepe1");
                 die();
             }
 
             foreach ($equipes as $ke => $e) {
                 if (count($e) < $jeu_actuel->min_joueurs) {
                     $ke = $ke + 1;
-                    echo "<h1>Erreur : il n'y a pas assez de joueurs dans l'équipe $ke.</h1>";
+                    self::error("<h1>Erreur : il n'y a pas assez de joueurs dans l'équipe $ke.</h1>", "stepe1");
                     die();
                 }
                 if (!is_null($jeu_actuel->max_joueurs)) {
                     if (count($e) > $jeu_actuel->max_joueurs) {
                         $ke = $ke + 1;
-                        echo "<h1>Erreur : il y a trop de joueurs dans l'équipe $ke.</h1>";
+                        self::error("<h1>Erreur : il y a trop de joueurs dans l'équipe $ke.</h1>", "stepe1");
                         die();
                     }
                 }
@@ -277,11 +326,11 @@ class PartieController extends Controller
                 header("Location:step1");
             $joueurs = $_SESSION['joueurs_select'];
             if (count($joueurs) < $jeu_actuel->min_joueurs) {
-                echo "<h1>Erreur : il n'y a pas assez de joueurs.</h1>";
+                self::error("<h1>Erreur : il n'y a pas assez de joueurs.</h1>", "step1");
                 die();
             }
             if (count($joueurs) > $jeu_actuel->max_joueurs) {
-                echo "<h1>Erreur : il y a trop de joueurs.</h1>";
+                self::error("<h1>Erreur : il y a trop de joueurs.</h1>", "step1");
                 die();
             }
             header('Location:step2');
@@ -295,7 +344,7 @@ class PartieController extends Controller
     {
         session_start();
         if (!isset($_SESSION['jeu_select']))
-            header("Location:../add_partie");
+            self::error("<h1>Erreur : le jeu doit être renseigné.</h1>", "step0");
 
         $jeu = $_SESSION['jeu_select'];
         if ($jeu->type == 'equipes') {
@@ -307,8 +356,10 @@ class PartieController extends Controller
         }
 
         if (!isset($_POST['scores'])) {
-            //appeler une fonction d'erreur
-            echo "<h1>Erreur : variables absentes</h1>";
+            if ($jeu->type == 'equipes')
+                self::error("<h1>Erreur : variables absentes</h1>", "stepe2");
+            else
+                self::error("<h1>Erreur : variables absentes</h1>", "step2");
             die();
         }
 
@@ -316,7 +367,10 @@ class PartieController extends Controller
         $scores = $_POST["scores"];
         foreach ($scores as $s) {
             if (!is_numeric($s)) {
-                echo "<h1>Erreur : les scores doivent être des nombres.</h1>";
+                if ($jeu->type == 'equipes')
+                    self::error("<h1>Erreur : les scores doivent être des nombres.</h1>", "stepe2");
+                else
+                    self::error("<h1>Erreur : les scores doivent être des nombres.</h1>", "step2");
                 die();
             }
         }
@@ -325,8 +379,7 @@ class PartieController extends Controller
             $ns = count($scores);
             $nj = count($equipes);
             if ($ns != $nj) {
-                //appeler une fonction d'erreur
-                echo "<h1>Erreur : scores et joueurs incohérents</h1>";
+                self::error("<h1>Erreur : scores et joueurs incohérents</h1>", "stepe2");
                 die();
             }
 
@@ -338,11 +391,11 @@ class PartieController extends Controller
             }
             switch ($pb) {
                 case 2:
-                    echo "<h1>Erreur de connexion à la BD.</h1>";
+                    self::error("<h1>Erreur de connexion à la BD.</h1>", "stepe2");
                     die();
                     break;
                 default:
-                    echo "<h1>Erreur non gérée.</h1>";
+                    self::error("<h1>Erreur non gérée.</h1>", "stepe2");
                     die();
                     break;
             }
@@ -351,24 +404,23 @@ class PartieController extends Controller
             $ns = count($scores);
             $nj = count($joueurs);
             if ($ns != $nj) {
-                //appeler une fonction d'erreur
-                print_r($scores);
-                echo "<h1>Erreur : scores et joueurs incohérents</h1>";
+                self::error("<h1>Erreur : scores et joueurs incohérents</h1>", "step2");
                 die();
             }
             $pb = Partie::addPartie($joueurs, $scores, $jeu);
             if (!$pb) {
                 unset($_SESSION['jeu_select']);
                 unset($_SESSION['joueurs_select']);
+                self::error("<h1>Erreur : scores et joueurs incohérents</h1>", "step2");
                 header('Location:valid'); // Redirection vers la page OK
             }
             switch ($pb) {
                 case 2:
-                    echo "<h1>Erreur de connexion à la BD.</h1>";
+                    self::error("<h1>Erreur de connexion à la BD.</h1>", "step2");
                     die();
                     break;
                 default:
-                    echo "<h1>Erreur non gérée.</h1>";
+                    self::error("<h1>Erreur non gérée.</h1>", "step2");
                     die();
                     break;
             }
diff --git a/app/view/Partie/displayStep0.html b/app/view/Partie/displayStep0.html
index 8d5b6d4..593248e 100644
--- a/app/view/Partie/displayStep0.html
+++ b/app/view/Partie/displayStep0.html
@@ -8,7 +8,9 @@
 	$page_title = "Formulaire d'ajout de partie"; 
 	include(ROOT."/app/view/Includes/header.include.html"); 
 ?>
-
+<?php	if (!is_null($this->errMsg)){ ?>
+<article class="msg-erreur"><?php echo $this->errMsg;?></article>
+<?php } ?>
     <article>
         <h2>Formulaire d'ajout de partie</h2>
         <h3>Sélection d'un jeu</h3>
diff --git a/app/view/Partie/displayStep1.html b/app/view/Partie/displayStep1.html
index 75c609a..bc842cc 100644
--- a/app/view/Partie/displayStep1.html
+++ b/app/view/Partie/displayStep1.html
@@ -3,6 +3,9 @@
 	include(ROOT."/app/view/Includes/header.include.html");
 ?>
 <?php $jeuactuel = $this->jeuactuel ?>
+<?php	if (!is_null($this->errMsg)){ ?>
+<article class="msg-erreur"><?php echo $this->errMsg;?></article>
+<?php } ?>
 <article>
     <h2>Formulaire d'ajout de partie</h2>
     <h3>Sélection des joueurs</h3>
diff --git a/app/view/Partie/displayStep2.html b/app/view/Partie/displayStep2.html
index 287c7b3..83f9e07 100644
--- a/app/view/Partie/displayStep2.html
+++ b/app/view/Partie/displayStep2.html
@@ -3,6 +3,9 @@
 	include(ROOT."/app/view/Includes/header.include.html"); 
 ?>
 <?php $jeuactuel = $this->jeuactuel ?>
+<?php	if (!is_null($this->errMsg)){ ?>
+<article class="msg-erreur"><?php echo $this->errMsg;?></article>
+<?php } ?>
 <article>
     <h2>Formulaire d'ajout de partie</h2>
     <h3>Entrée des scores</h3>
diff --git a/app/view/Partie/displayStepe1.html b/app/view/Partie/displayStepe1.html
index 07be415..eebe713 100644
--- a/app/view/Partie/displayStepe1.html
+++ b/app/view/Partie/displayStepe1.html
@@ -3,6 +3,9 @@
 	include(ROOT."/app/view/Includes/header.include.html");
 ?>
 <?php $jeuactuel = $this->jeuactuel ?>
+<?php	if (!is_null($this->errMsg)){ ?>
+<article class="msg-erreur"><?php echo $this->errMsg;?></article>
+<?php } ?>
 <article>
     <h2>Formulaire d'ajout de partie</h2>
     <h3>Sélection des joueurs</h3>
diff --git a/app/view/Partie/displayStepe2.html b/app/view/Partie/displayStepe2.html
index 2f92894..ecf8b2a 100644
--- a/app/view/Partie/displayStepe2.html
+++ b/app/view/Partie/displayStepe2.html
@@ -3,6 +3,9 @@
 	include(ROOT."/app/view/Includes/header.include.html"); 
 ?>
 <?php $jeuactuel = $this->jeuactuel ?>
+<?php	if (!is_null($this->errMsg)){ ?>
+<article class="msg-erreur"><?php echo $this->errMsg;?></article>
+<?php } ?>
 <article>
     <h2>Formulaire d'ajout de partie</h2>
     <h3>Entrée des scores</h3>
-- 
GitLab