diff --git a/app/controller/PartieController.php b/app/controller/PartieController.php
index 2955880a2248c30581e5207dc487d73ed8501996..35d4fbdf73dcb788abaf0b144cc3874e154d6d27 100644
--- a/app/controller/PartieController.php
+++ b/app/controller/PartieController.php
@@ -28,14 +28,34 @@ class PartieController extends Controller
         $data = $_POST;
 
         $scores = explode(";", $data["scores"]);
-        print_r($scores);
         if (count($scores) != count($data["joueurs"])){
             //appeler une fonction d'erreur
-            echo "<h1>Erreur : variables pb</h1>";
+            echo "<h1>Erreur : scores et joueurs incohérents</h1>";
             die();
         }
         
-        Partie::addPartie($data['joueurs'], $scores, $data['jeu']);
+        $pb = Partie::addPartie($data['joueurs'], $scores, $data['jeu']);
+        if(!$pb)
+            header('Location:valid'); // Redirection vers la page OK
+        switch ($pb) {
+            case 1:
+                echo "<h1>Erreur : Le jeu choisi n'existe pas.</h1>";
+                die();
+                break;
+            case 2:
+                echo "<h1>Erreur de connexion à la BD.</h1>";
+                die();
+                break;
+            case 3:
+                echo "<h1>Erreur : un des joueurs est entré est introuvable dans la BD.</h1>";
+                die();
+                break;
+            case 4:
+                echo "<h1>Erreur : le jeu entré est introuvable dans la BD.</h1>";
+                die();
+                break;
+        }
+        
     }
 
 }
\ No newline at end of file
diff --git a/app/model/Partie.php b/app/model/Partie.php
index fe5a9c0e5f2d41f2d75dfa50d2dfd8df91044bac..3b9ea7b6f95befc914ee86c8f384ce7e9b7dec23 100644
--- a/app/model/Partie.php
+++ b/app/model/Partie.php
@@ -11,7 +11,8 @@ class Partie extends Model
 {
     public $joueurs, $scores, $lejeu, $date, $slug;
 
-    public static function getFromSlug($slug_partie) {
+    public static function getFromSlug($slug_partie)
+    {
         $db = Database::getInstance();
         $sql = "SELECT * FROM R_partie WHERE slug = :slug";
         $stmt = $db->prepare($sql);
@@ -20,7 +21,8 @@ class Partie extends Model
         return $stmt->fetch();
     }
 
-    public static function getList() {
+    public static function getList()
+    {
         $db = Database::getInstance();
         $sql = "SELECT * FROM R_partie";
         $stmt = $db->query($sql);
@@ -28,7 +30,8 @@ class Partie extends Model
         return $stmt->fetchAll();
     }
 
-    public static function checkExists($slug_partie) { // méthode permettant de vérifier si une partie existe dans la BDD
+    public static function checkExists($slug_partie)
+    { // méthode permettant de vérifier si une partie existe dans la BDD
         $db = Database::getInstance(); // on récupère la connexion à la BDD
         $sql = "SELECT * FROM R_partie WHERE slug = :slug";
         $req = $db->prepare($sql); // on prépare la requête
@@ -38,30 +41,31 @@ class Partie extends Model
             return true;
         }
 
-      return false; // on aurait pu mettre deux return (un dans le if et un ici), mais bon...
+        return false; // on aurait pu mettre deux return (un dans le if et un ici), mais bon...
     }
 
-    private static function calcul_classement($R){
+    private static function calcul_classement($R)
+    {
         $m = count($R);
 
         $R_classement = array_fill(0, $m, 0);
         asort($R);
         $i = 1;
-        foreach ($R as $k => $val){
+        foreach ($R as $k => $val) {
             $R_classement[$k] = $i;
             $i++;
         }
         return $R_classement;
     }
 
-    private static function classeur($score, $id_jeu){
+    private static function classeur($score, $id_jeu)
+    {
         $db = Database::getInstance();
         $sql = "SELECT classement, score FROM R_joueur_jeu WHERE jeu = :id_jeu SORT BY classement DESC;";
         $stmt = $db->prepare($sql);
-        if($stmt->execute(array(":id_jeu" => $id_jeu))) {
+        if ($stmt->execute(array(":id_jeu" => $id_jeu))) {
             while ($tmp = $stmt->fetch()) {
-                if ($score <= $tmp['score'])
-                {
+                if ($score <= $tmp['score']) {
                     return $tmp['classement'] + 1;
                 }
             }
@@ -70,13 +74,14 @@ class Partie extends Model
     }
 
 
-    public static function addPartie($joueurs, $scores, $nom_jeu) {
+    public static function addPartie($joueurs, $scores, $nom_jeu)
+    {
         $db = Database::getInstance();
         $datestr = date("Y-m-d H:i:s");
-        $sql0 = "SELECT id FROM R_jeu WHERE nom = :nom_jeu;";
+        $sql0 = "SELECT slug FROM R_jeu WHERE nom = :nom_jeu;";
         $sql1 = "INSERT INTO R_partie (id_jeu, date) VALUES (:id_jeu, :date);";
         $sqlp = "SELECT id FROM R_partie WHERE id_jeu = :id_jeu AND date = :date;";
-        $sql2 = "SELECT id FROM R_joueur WHERE nom = :joueur;";
+        $sql2 = "SELECT slug FROM R_joueur WHERE nom = :joueur;";
         $sql3 = "SELECT score FROM R_joueur_jeu WHERE joueur = :id_joueur AND jeu = :id_jeu;";
         $sql4 = "INSERT INTO R_joueur_partie (partie, joueur, classement, score, id_jeu)
                 VALUES (:id_partie, :id_joueur,:classement, :score, :id_jeu);";
@@ -91,89 +96,112 @@ class Partie extends Model
         $stmt4 = $db->prepare($sql4);
         $stmt5 = $db->prepare($sql5);
         $stmt6 = $db->prepare($sql6);
-        print($nom_jeu);
 
-        if($stmt0->execute(array(":nom_jeu" => $nom_jeu))) {
-            if($row = $stmt0->fetch()) {
+        if ($stmt0->execute(array(":nom_jeu" => $nom_jeu))) {
+            // lecture du slug du jeu
+            if ($row = $stmt0->fetch()) {
                 $id_jeu = $row[0];
-                if(!Jeu::checkExistsId($id_jeu))
-                        throw new UnexpectedValueException;
-
-                    if($stmt1->execute(array(":id_jeu" => $id_jeu, ":date" => $datestr)))
-                    {
-                        $stmtp->execute(array(":id_jeu" => $id_jeu, ":date" => $datestr));
-                        $id_partie = $stmtp->fetch()['id'];
-                        $m = count($joueurs);
-                        $id_joueur = array_fill(0, $m, 0);
-                        for ($j = 0; $j<$m; $j++){
+                if (!Jeu::checkExists($id_jeu)){
+                    return 1;
+                }
+
+                if ($stmt1->execute(array(":id_jeu" => $id_jeu, ":date" => $datestr))) {
+                    // insertion d'une nouvelle partie
+                    // on suppose que si l'insertion fonctionne, la lecture aussi, donc que les droits d'accés sont bons
+                    $stmtp->execute(array(":id_jeu" => $id_jeu, ":date" => $datestr));
+                    $id_partie = $stmtp->fetch()['id'];
+
+                    $m = count($joueurs);
+                    $id_joueur = array_fill(0, $m, 0);
+
+                    for ($j = 0; $j < $m; $j++) {
+                        // Parcours des joueurs
                         $id_joueur[$j] = $row[0];
-                        if($stmt2->execute(array(":joueur" => $joueurs[$j]))) {
+                        // lecture des slugs des joueur
+                        if ($stmt2->execute(array(":joueur" => $joueurs[$j]))) {
                             if ($row = $stmt2->fetch()) {
                                 $id_joueur[$j] = $row[0];
                             }
+                            else
+                                return 3;
+                        }
+                        else{
+                            echo "test";
+                            return 2;
                         }
-                        else
-                            echo "stmt2, dc";
                     }
+
                     $old_score = array_fill(0, $m, 0);
-                    for($j = 0; $j<$m; $j++) {
+
+                    for ($j = 0; $j < $m; $j++) {
+                        // récupération du score actuel de chaque joueur
                         if ($stmt3->execute(array(":id_joueur" => $id_joueur[$j], ":id_jeu" => $id_jeu))) {
                             if ($row = $stmt3->fetch()) {
+                                // Le joueur a déja joué à ce jeu
                                 $old_score[$j] = $row[0];
-                            }
-                            else {
+                            } else {
+                                // ou le joueur n'a jamais joué à ce jeu, on je rajoute à la relation.
                                 $old_score[$j] = 1000;
                                 $stmtN = $db->prepare($sqlN);
-                                if($stmtN->execute(array(":id_joueur" => $id_joueur[$j], ":id_jeu" => $id_jeu, ":score" => 1000))){
-                                    echo "insertion joueur $j<br />";
+                                if ($stmtN->execute(array(":id_joueur" => $id_joueur[$j], ":id_jeu" => $id_jeu, ":score" => 1000))) {
+
                                 }
                                 else{
-                                    echo "stmt n, dc <br />";
-                                    print_r($id_joueur);
-                                    print($id_jeu);
-                                    die();
+                                    echo test;
+                                    return 2;
                                 }
                             }
+
                         }
-                        else
-                            echo "stmt3, dc<br />";
                     }
+                    // Calcul de la nouvelle différence de scores et du nouveau classement de chacun
                     $diff_scores = ELO_scores($scores, $scores, 32);
                     $classement = self::calcul_classement($diff_scores);
-                    print_r($old_score);
-                    print_r($diff_scores);
 
-                    for($j = 0; $j<$m; $j++) {
-                        if($stmt4->execute(array(":id_partie" => $id_partie,
+                    for ($j = 0; $j < $m; $j++) {
+                        // Insertion des infos de la partie (avec le score et le classement avant la partie)
+                        // pour chaque joueur
+                        if ($stmt4->execute(array(":id_partie" => $id_partie,
                             ":id_joueur" => $id_joueur[$j], "id_jeu" => $id_jeu,
-                            ":classement" => $classement[$j], ":score" => $old_score[$j]))) {
+                            ":classement" => $classement[$j], ":score" => $old_score[$j]))
+                        ) {
                             $newS = $old_score[$j] + $diff_scores[$j];
-                            print($newS);
                             $classement_jeu = Partie::classeur($newS, $id_jeu);
+                            // On met à jour le score et le classement du joueur actuel dans sa relation avec le jeu
                             if ($stmt5->execute(array(":new_score" => $newS,
                                 ":id_jeu" => $id_jeu, ":id_joueur" => $id_joueur[$j], ":new_classement" => $classement_jeu))
                             ) {
-                                if ($stmt6->execute(array(":new_classement" => $classement_jeu))){
-                                    //C'est dans la boite
-                                    echo "works well enough<br />";
+                                // on met à jour le classement des autres joueurs
+                                if ($stmt6->execute(array(":new_classement" => $classement_jeu))) {
+                                    return 0;
+                                }
+                                else{
+                                    echo "test";
+                                    return 2;
                                 }
-                                else
-                                    echo "stmt6, dc<br />";
                             }
-                            else
-                                echo "stmt5, dc<br />";
+                            else{
+                                echo "test";
+                                return 2;
+                            }
+                        }
+                        else{
+                            echo "test";
+                            return 2;
                         }
-                        else
-                            echo "stmt4, dc<br />";
                     }
                 }
-                else
-                    echo "stmt1, dc<br />";
+                else{
+                    echo "test1";
+                    return 2;
+                }
+
             }
+            else
+                return 4;
         }
-        else {
-            echo "Arise, ça marche pas...<br />"; die();
-        }
+        else
+            return 2;
+        return 0;
     }
-
 }
\ No newline at end of file