diff --git a/app/controller/PartieController.php b/app/controller/PartieController.php
index 63d65ea85e510a8cc9001992a68aa91982b1bb37..a84ccb33ecc05d0a0551f047c6c3195c71f9d624 100644
--- a/app/controller/PartieController.php
+++ b/app/controller/PartieController.php
@@ -8,54 +8,128 @@
  */
 class PartieController extends Controller
 {
-    public function displayForm(){
+    public function displayStep0(){
         $this->view->liste = Jeu::getList();
+        $this->view->display();
+    }
+
+    public function displayStep1(){
+        session_start();
+        if(!isset($_SESSION['jeu_select']))
+            header("Location:../add_partie");
+
+        $this->view->jeuactuel = $_SESSION['jeu_select'];
         $this->view->listej = Profil::getList();
         $this->view->display();
     }
-    
+
+    public function displayStep2(){
+        session_start();
+        if(!isset($_SESSION['jeu_select']))
+            header("Location:../add_partie");
+        if(!isset($_SESSION['joueurs_select']))
+            header("Location:../add_partie/step1");
+        
+        
+        $this->view->jeuactuel = $_SESSION['jeu_select'];
+        $this->view->listejactuel = $_SESSION['joueurs_select'];
+        $this->view->display();
+    }
+
     public function displayValid(){
         $this->view->display();
     }
     
-    public function verify(){
+    public function verifyStep0(){
 
-        if(!isset($_POST['jeu']) || !isset($_POST['joueurs']) || !isset($_POST['scores'])) {
+        if(!isset($_POST['jeu'])) {
             //appeler une fonction d'erreur
             echo "<h1>Erreur : variables absentes</h1>";
             die();
         }
-        $data = $_POST;
+        $jeu = $_POST['jeu'];
 
-        $scores = explode(";", $data["scores"]);
-        $ns = count($scores);
-        $nj = count($data["joueurs"]);
-        if ($ns != $nj){
-            //appeler une fonction d'erreur
-            echo "<h1>Erreur : scores et joueurs incohérents</h1>";
+        if(!Jeu::checkExistsNom($jeu)) {
+            echo "<h1>Erreur : le jeu entré est introuvable dans la BD.</h1>";
+            die();
+        }
+
+        $jeu = Jeu::getFromNom($jeu);
+        session_start();
+        $_SESSION['jeu_select'] = $jeu;
+        header('Location:step1');
+    }
+
+    public function verifyStep1(){
+        session_start();
+        if(!isset($_SESSION['jeu_select']))
+            header("Location:../add_partie");
+        $joueurs = array();
+        if(isset($_POST['joueur_check'])) {
+            foreach($_POST['joueur_check'] as $j){
+                if (!in_array($_POST["joueur"."$j"], $joueurs))
+                    array_push($joueurs, $_POST["joueur"."$j"]);
+                else{
+                    echo "<h1>Erreur : un joueur a été entré plusieurs fois.</h1>";
+                    die();
+                }
+            }
+        }
+        else{
+            echo "<h1>Erreur : aucune checkbox coché.</h1>";
             die();
         }
 
+        $nj = count($joueurs);
+        $joueurs_objet = array();
         for ($j=0;$j<$nj;$j++){
-            if(!Profil::checkExists($data['joueurs'][$j])){
-                echo "<h1>Erreur : un des joueurs est entré est introuvable dans la BD.</h1>";
+            if(Profil::checkExists($joueurs[$j])){
+                array_push($joueurs_objet, Profil::getFromSlug($joueurs[$j]));
+            }
+            else{
+                echo "<h1>Erreur : un des joueurs entré est introuvable dans la BD.</h1>";
                 die();
             }
         }
+        $_SESSION['joueurs_select'] = $joueurs_objet;
+        header('Location:step2');
+    }
+    public function verifyStep2(){
+        session_start();
+        if(!isset($_SESSION['jeu_select']))
+            header("Location:../add_partie");
+        if(!isset($_SESSION['joueurs_select']))
+            header("Location:../add_partie/step1");
 
-        if(!Jeu::checkExists($data['jeu'])){
-            echo "<h1>Erreur : le jeu entré est introuvable dans la BD.</h1>";
+        if(!isset($_POST['scores'])) {
+            //appeler une fonction d'erreur
+            echo "<h1>Erreur : variables absentes</h1>";
             die();
         }
-
-        $pb = Partie::addPartie($data['joueurs'], $scores, $data['jeu']);
-        if(!$pb)
+        
+        $scores = $_POST["scores"];
+        foreach ($scores as $s){
+            if(!is_numeric($s)) {
+                echo "<h1>Erreur : les scores doivent être des nombres.</h1>";
+                die();
+            }
+        }
+        $jeu = $_SESSION['jeu_select'];
+        $joueurs = $_SESSION['joueurs_select'];
+        $ns = count($scores);
+        $nj = count($joueurs);
+        if ($ns != $nj){
+            //appeler une fonction d'erreur
+            echo "<h1>Erreur : scores et joueurs incohérents</h1>";
+            die();
+        }
+        $pb = Partie::addPartie($joueurs, $scores, $jeu);
+        if(!$pb) {
+            unset($_SESSION['jeu_select']);
+            unset($_SESSION['joueurs_select']);
             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();
@@ -66,5 +140,4 @@ class PartieController extends Controller
                 break;
         }
     }
-
 }
\ No newline at end of file
diff --git a/app/kernel/Router.php b/app/kernel/Router.php
index 7f8698becd816a8f390111802edb41746eb00bc8..a1496e2da3f906bdaae9f261580e4f01ddd9a4fc 100644
--- a/app/kernel/Router.php
+++ b/app/kernel/Router.php
@@ -1,116 +1,108 @@
 <?php
 
-class Router { // classe PHP permettant l'analyse de l'URL des requêtes
-	public static function analyze($query) { // méthode d'analyse de la requête
-		// on définit une variable, par défaut initialisée sur les paramètres de page d'erreur 404 (page non trouvée)
-		$result = array(
-			"controller" => "Error", // le nom du contrôleur à instancier
-			"action" => "error404", // le nom de l'action à effectuer, autrement dit de la méthode à appeler dans ce contrôleur
-			"params" => array() // les paramètres de la requête (dans un tableau), par défaut aucun
-		);
+class Router
+{ // classe PHP permettant l'analyse de l'URL des requêtes
+    public static function analyze($query)
+    { // méthode d'analyse de la requête
+        // on définit une variable, par défaut initialisée sur les paramètres de page d'erreur 404 (page non trouvée)
+        $result = array(
+            "controller" => "Error", // le nom du contrôleur à instancier
+            "action" => "error404", // le nom de l'action à effectuer, autrement dit de la méthode à appeler dans ce contrôleur
+            "params" => array() // les paramètres de la requête (dans un tableau), par défaut aucun
+        );
 
-		if($query === "" || $query === "/") { // on regarde si la requête est identique (===) à la chaîne vide ou "/", et si oui, c'est qu'on voulait accéder à la page d'accueil
-			$result["controller"] = "Index"; // le contrôleur est donc Index
-			$result["action"] = "display"; // on va afficher la page, l'action est donc display
-			// il n'y a pas de paramètres, donc pas d'affectation de "params"
-		}
-		else { // sinon, on a des infos sur la page demandée
-			$parts = explode("/", $query); // on sépare la requête selon les /, et on regarde ce qu'on connait comme ordres dedans
-			
-			/*** consultation des jeux ***/
-			if($parts[0] == "jeu" && count($parts) == 2) { // on veut consulter la fiche d'un jeu (jeu/nomDuJeu)
-				$result["controller"] = "Jeu"; // le contrôleur à instancier sera "JeuController", on met donc "Jeu" dans la variable de résultat
-				$result["action"] = "display"; // on veut afficher les informations d'un jeu, donc on donne l'action "display"
-				$result["params"]["slug"] = $parts[1]; //on a des paramètres dans l'URL (normalement le nom/id du jeu), on le stocke aussi
-			}
-			else if($parts[0] == "listejeux") { // on veut consulter la liste des jeux (listejeux/, avec n'importe quoi derrière)
-				$result["controller"] = "Jeu"; // le contrôleur à instancier sera "JeuController", on met donc "Jeu" dans la variable de résultat
-				$result["action"] = "displayListe"; // on veut afficher la liste des jeux, donc on donne l'action "displayListe"
-				// il n'y a pas de paramètres attendus, on n'affecte pas $result["params"]
-			}
-			else if($parts[0] == "addjeu" && count($parts) == 1) { // on veut afficher le formulaire d'ajout(url/addjeu)
-				$result["controller"] = "Jeu";
-				$result["action"] = "displayFormAdd"; // on veut afficher le formulaire
-				// il n'y a pas de paramètres attendus, on n'affecte pas $result["params"]
-			}
-			else if($parts[0] == "addjeu" && count($parts) == 2 && $parts[1] == "addrequest") { // on veut enregistrer la demande d'ajout (addjeu/addrequest)
-				$result["controller"] = "Jeu"; // le contrôleur à instancier sera "JeuController", on met donc "Jeu" dans la variable de résultat
-				$result["action"] = "addRequest"; // on veut ajouter le jeu à la BDD, donc on donne l'action "addRequest"
-				// il n'y a pas de paramètres attendus, on n'affecte pas $result["params"]
-			}
-			else if($parts[0] == "addjeu" && count($parts) == 2 && $parts[1] == "requestvalid") { // l'enregistrement de la demande a été effectué, on affiche un message de confirmation (addjeu/requestvalid)
-				$result["controller"] = "Jeu";
-				$result["action"] = "displayRequestValid";
-				// il n'y a pas de paramètres attendus, on n'affecte pas $result["params"]
-			}
-			
-			/*** consultation des profils ***/
-			else if($parts[0] == "profil" && count($parts) == 2) { // consultation d'un profil : 2 morceaux (profil/pseudoDeLaPersonne)
-				$result["controller"] = "Profil"; 
-				$result["action"] = "display"; 
-				$result["params"]["slug"] = $parts[1]; 
-			}
-			
-			/*** consultation des classements ***/
-			else if($parts[0] == "classement" && count($parts) > 1) { // si classement général : 2 morceaux(classement/global), si classement spécifique : 3 morceaux (classement/jeu/nomDuJeu)
-				$result["controller"] = "Classement";
-				$result["action"] = "display";
-				$result["params"]["slug"] = $parts[1]; //on a des paramètres dans l'URL, on le stocke aussi
-				for($k=2; $k<count($parts); $k++) { // on recompose le bout d'URL encore inutilisé
-					$result["params"]["slug"] = $result["params"]["slug"].'/'.$parts[$k];
-				}
-			}
-			
-			/*** connexion au site ***/
-			else if($parts[0] == "connexion" && count($parts) == 1) { // formulaire de connexion
-				$result["controller"] = "Connexion"; 
-				$result["action"] = "displayForm"; // "displayForm" pour afficher le formulaire
-			}
-			else if($parts[0] == "connexion" && count($parts) == 2 && $parts[1] == "valid") { // connexion réussie
-				$result["controller"] = "Connexion"; 
-				$result["action"] = "displayValid"; // "displayValid" pour afficher la page avec le message de réussite
-			}
-			else if($parts[0] == "connexion" && count($parts) == 2 && $parts[1] == "verify") { // connexion réussie
-				$result["controller"] = "Connexion"; 
-				$result["action"] = "verify"; // "verify" pour appeler la méthode de vérification
-			}
-			
-			/*** inscription au site ***/
-			else if($parts[0] == "inscription" && count($parts) == 1) { // formulaire de connexion
-				$result["controller"] = "Register"; 
-				$result["action"] = "displayForm"; // "displayForm" pour afficher le formulaire
-			}
-			else if($parts[0] == "inscription" && count($parts) == 2 && $parts[1] == "valid") { // connexion réussie
-				$result["controller"] = "Register"; 
-				$result["action"] = "displayValid"; // "displayValid" pour afficher la page avec le message de réussite
-			}
-			else if($parts[0] == "inscription" && count($parts) == 2 && $parts[1] == "verify") { // vérification de la validité des champs
-				$result["controller"] = "Register"; 
-				$result["action"] = "verify"; // "verify" pour appeler la méthode de vérification
-			}
-			else if($parts[0] == "inscription" && count($parts) == 2 && $parts[1] == "save") { // réalisation de l'inscription dans la BDD
-				$result["controller"] = "Register"; 
-				$result["action"] = "save"; // "save" pour appeler la méthode d'enregistrement dans la BDD
-			}
+        if ($query === "" || $query === "/") { // on regarde si la requête est identique (===) à la chaîne vide ou "/", et si oui, c'est qu'on voulait accéder à la page d'accueil
+            $result["controller"] = "Index"; // le contrôleur est donc Index
+            $result["action"] = "display"; // on va afficher la page, l'action est donc display
+            // il n'y a pas de paramètres, donc pas d'affectation de "params"
+        } else { // sinon, on a des infos sur la page demandée
+            $parts = explode("/", $query); // on sépare la requête selon les /, et on regarde ce qu'on connait comme ordres dedans
 
-			/*** Ajout de partie ***/
-			else if($parts[0] == "add_partie" && count($parts) == 1){ // formulaire d'ajout de partie
-				$result["controller"] = "Partie";
-				$result["action"] = "displayForm"; // "displayForm" pour afficher le formulaire
-			}
-            else if($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "valid"){ // Page d'ajout réussie
+            /*** consultation des jeux ***/
+            if ($parts[0] == "jeu" && count($parts) == 2) { // on veut consulter la fiche d'un jeu (jeu/nomDuJeu)
+                $result["controller"] = "Jeu"; // le contrôleur à instancier sera "JeuController", on met donc "Jeu" dans la variable de résultat
+                $result["action"] = "display"; // on veut afficher les informations d'un jeu, donc on donne l'action "display"
+                $result["params"]["slug"] = $parts[1]; //on a des paramètres dans l'URL (normalement le nom/id du jeu), on le stocke aussi
+            } else if ($parts[0] == "listejeux") { // on veut consulter la liste des jeux (listejeux/, avec n'importe quoi derrière)
+                $result["controller"] = "Jeu"; // le contrôleur à instancier sera "JeuController", on met donc "Jeu" dans la variable de résultat
+                $result["action"] = "displayListe"; // on veut afficher la liste des jeux, donc on donne l'action "displayListe"
+                // il n'y a pas de paramètres attendus, on n'affecte pas $result["params"]
+            } else if ($parts[0] == "addjeu" && count($parts) == 1) { // on veut afficher le formulaire d'ajout(url/addjeu)
+                $result["controller"] = "Jeu";
+                $result["action"] = "displayFormAdd"; // on veut afficher le formulaire
+                // il n'y a pas de paramètres attendus, on n'affecte pas $result["params"]
+            } else if ($parts[0] == "addjeu" && count($parts) == 2 && $parts[1] == "addrequest") { // on veut enregistrer la demande d'ajout (addjeu/addrequest)
+                $result["controller"] = "Jeu"; // le contrôleur à instancier sera "JeuController", on met donc "Jeu" dans la variable de résultat
+                $result["action"] = "addRequest"; // on veut ajouter le jeu à la BDD, donc on donne l'action "addRequest"
+                // il n'y a pas de paramètres attendus, on n'affecte pas $result["params"]
+            } else if ($parts[0] == "addjeu" && count($parts) == 2 && $parts[1] == "requestvalid") { // l'enregistrement de la demande a été effectué, on affiche un message de confirmation (addjeu/requestvalid)
+                $result["controller"] = "Jeu";
+                $result["action"] = "displayRequestValid";
+                // il n'y a pas de paramètres attendus, on n'affecte pas $result["params"]
+            } /*** consultation des profils ***/
+            else if ($parts[0] == "profil" && count($parts) == 2) { // consultation d'un profil : 2 morceaux (profil/pseudoDeLaPersonne)
+                $result["controller"] = "Profil";
+                $result["action"] = "display";
+                $result["params"]["slug"] = $parts[1];
+            } /*** consultation des classements ***/
+            else if ($parts[0] == "classement" && count($parts) > 1) { // si classement général : 2 morceaux(classement/global), si classement spécifique : 3 morceaux (classement/jeu/nomDuJeu)
+                $result["controller"] = "Classement";
+                $result["action"] = "display";
+                $result["params"]["slug"] = $parts[1]; //on a des paramètres dans l'URL, on le stocke aussi
+                for ($k = 2; $k < count($parts); $k++) { // on recompose le bout d'URL encore inutilisé
+                    $result["params"]["slug"] = $result["params"]["slug"] . '/' . $parts[$k];
+                }
+            } /*** connexion au site ***/
+            else if ($parts[0] == "connexion" && count($parts) == 1) { // formulaire de connexion
+                $result["controller"] = "Connexion";
+                $result["action"] = "displayForm"; // "displayForm" pour afficher le formulaire
+            } else if ($parts[0] == "connexion" && count($parts) == 2 && $parts[1] == "valid") { // connexion réussie
+                $result["controller"] = "Connexion";
+                $result["action"] = "displayValid"; // "displayValid" pour afficher la page avec le message de réussite
+            } else if ($parts[0] == "connexion" && count($parts) == 2 && $parts[1] == "verify") { // connexion réussie
+                $result["controller"] = "Connexion";
+                $result["action"] = "verify"; // "verify" pour appeler la méthode de vérification
+            } /*** inscription au site ***/
+            else if ($parts[0] == "inscription" && count($parts) == 1) { // formulaire de connexion
+                $result["controller"] = "Register";
+                $result["action"] = "displayForm"; // "displayForm" pour afficher le formulaire
+            } else if ($parts[0] == "inscription" && count($parts) == 2 && $parts[1] == "valid") { // connexion réussie
+                $result["controller"] = "Register";
+                $result["action"] = "displayValid"; // "displayValid" pour afficher la page avec le message de réussite
+            } else if ($parts[0] == "inscription" && count($parts) == 2 && $parts[1] == "verify") { // vérification de la validité des champs
+                $result["controller"] = "Register";
+                $result["action"] = "verify"; // "verify" pour appeler la méthode de vérification
+            } else if ($parts[0] == "inscription" && count($parts) == 2 && $parts[1] == "save") { // réalisation de l'inscription dans la BDD
+                $result["controller"] = "Register";
+                $result["action"] = "save"; // "save" pour appeler la méthode d'enregistrement dans la BDD
+            } /*** Ajout de partie ***/
+            else if ($parts[0] == "add_partie" && count($parts) == 1) {
                 $result["controller"] = "Partie";
-                $result["action"] = "displayValid"; // "displayForm" pour afficher le formulaire
-            }
-            else if($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "verify"){ // Page d'ajout réussie
+                $result["action"] = "displayStep0";
+            } else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "valid") {
+                $result["controller"] = "Partie";
+                $result["action"] = "displayValid";
+            } else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "step1") {
+                $result["controller"] = "Partie";
+                $result["action"] = "displayStep1";
+            } else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "step2") {
+                $result["controller"] = "Partie";
+                $result["action"] = "displayStep2";
+            } else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "verifystep0") {
                 $result["controller"] = "Partie";
-                $result["action"] = "verify"; // "displayForm" pour afficher le formulaire
+                $result["action"] = "verifyStep0";
+            } else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "verifystep1") {
+                $result["controller"] = "Partie";
+                $result["action"] = "verifyStep1";
+            } else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "verifystep2") {
+                $result["controller"] = "Partie";
+                $result["action"] = "verifyStep2";
             }
-			
-			// à chaque fois qu'on crée une nouvelle page, il faut rajouter un cas à cet endroit !
-			
-			// si on n'a rien trouvé que l'on connaissait, alors la page demandée n'existe pas => erreur 404. Ça tombe bien, c'est comme ça qu'on a initialisé la variable ! :-D
-		}
-		return $result; // on renvoie le tableau avec les informations nécessaires pour savoir quoi faire
-	}
+
+            // à chaque fois qu'on crée une nouvelle page, il faut rajouter un cas à cet endroit !
+
+            // si on n'a rien trouvé que l'on connaissait, alors la page demandée n'existe pas => erreur 404. Ça tombe bien, c'est comme ça qu'on a initialisé la variable ! :-D
+        }
+        return $result; // on renvoie le tableau avec les informations nécessaires pour savoir quoi faire
+    }
 }
diff --git a/app/model/Partie.php b/app/model/Partie.php
index a108076ff633e67211f01c187526985d34b999a3..b8208d2ec769a6be0620570934c381feeeb2e9c5 100644
--- a/app/model/Partie.php
+++ b/app/model/Partie.php
@@ -58,78 +58,68 @@ class Partie extends Model
         return $R_classement;
     }
 
-    private static function classeur($score, $id_jeu)
+
+    public static function updateClassement()
     {
         $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))) {
-            while ($tmp = $stmt->fetch()) {
-                if ($score <= $tmp['score']) {
-                    return $tmp['classement'] + 1;
+        $sql1 = "SELECT joueur FROM R_joueur_jeu ORDER BY score DESC";
+        $sql2 = "UPDATE R_joueur_jeu SET classement = :classement WHERE joueur = :joueur;";
+        $stmt1 = $db->prepare($sql1);
+        $stmt2 = $db->prepare($sql2);
+        if ($stmt1->execute()){
+            $i = 1;
+            while($row = $stmt1->fetch()){
+                if($stmt2->execute(array(":classement" => $i, ":joueur" => $row['joueur'])))
+                {
+
+                }
+                else
+                {
+                    echo "pb updateClassement";
+                    die();
                 }
+                $i++;
             }
         }
-        return 1;
-    }
+        else{
+            echo "pb updateClassement";
+            die();
+        }
 
+    }
 
-    public static function addPartie($joueurs, $scores, $nom_jeu)
+    public static function addPartie($joueurs, $scores, $jeu)
     {
+        print_r($joueurs);
+        print_r($scores);
         $db = Database::getInstance();
         $datestr = date("Y-m-d H:i:s");
-        $sql0 = "SELECT slug FROM R_jeu WHERE nom = :nom_jeu;";
         $sql1 = "INSERT INTO R_partie (jeu, date) VALUES (:id_jeu, :date);";
-        $sqlp = "SELECT id FROM R_partie WHERE id_jeu = :id_jeu AND date = :date;"; 
-        $sql2 = "SELECT slug FROM R_joueur WHERE nom = :joueur;";
+        $sql2 = "SELECT id FROM R_partie WHERE jeu = :id_jeu AND date = :date;";
         $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);";
-        $sql5 = "UPDATE R_joueur_jeu SET score = :new_score, classement = :new_classement WHERE joueur = :id_joueur AND jeu = :id_jeu;";
+        $sql4 = "INSERT INTO R_joueur_partie (partie, joueur, classement, score)
+                VALUES (:partie, :joueur,:classement, :score);";
+        $sql5 = "UPDATE R_joueur_jeu SET score = :new_score WHERE joueur = :id_joueur AND jeu = :id_jeu;";
         $sqlN = "INSERT INTO R_joueur_jeu (joueur, jeu, score) VALUES (:id_joueur, :id_jeu, :score);";
-        $sql6 = "UPDATE R_joueur_jeu SET classement = classement + 1 WHERE classement > :new_classement;";
-        $stmt0 = $db->prepare($sql0);
         $stmt1 = $db->prepare($sql1);
-        $stmtp = $db->prepare($sqlp);
         $stmt2 = $db->prepare($sql2);
         $stmt3 = $db->prepare($sql3);
         $stmt4 = $db->prepare($sql4);
         $stmt5 = $db->prepare($sql5);
-        $stmt6 = $db->prepare($sql6);
-
-        if ($stmt0->execute(array(":nom_jeu" => $nom_jeu))) {
-            // lecture du slug du jeu
-            $row = $stmt0->fetch();
-            $id_jeu = $row[0];
-            if (!Jeu::checkExists($id_jeu)) {
-                return 1;
-            }
 
-            if ($stmt1->execute(array(":id_jeu" => $id_jeu, ":date" => $datestr))) {
+            if ($stmt1->execute(array(":id_jeu" => $jeu->slug, ":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'];
+                $stmt2->execute(array(":id_jeu" => $jeu->slug, ":date" => $datestr));
+                $id_partie = $stmt2->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];
-                    // lecture des slugs des joueur
-                    if ($stmt2->execute(array(":joueur" => $joueurs[$j]))) {
-                        $row = $stmt2->fetch();
-                        $id_joueur[$j] = $row[0];
-                    } else
-                        return 2;
-                }
 
                 $old_score = array_fill(0, $m, 0);
 
                 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 ($stmt3->execute(array(":id_joueur" => $joueurs[$j]->slug, ":id_jeu" => $jeu->slug))) {
                         if ($row = $stmt3->fetch()) {
                             // Le joueur a déja joué à ce jeu
                             $old_score[$j] = $row[0];
@@ -137,45 +127,43 @@ class Partie extends Model
                             // 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))) {
+                            if ($stmtN->execute(array(":id_joueur" => $joueurs[$j]->slug, ":id_jeu" => $jeu->slug, ":score" => 1000))) {
 
-                            } else
+                            }
+                            else
                                 return 2;
                         }
 
                     }
                 }
                 // Calcul de la nouvelle différence de scores et du nouveau classement de chacun
-                $diff_scores = ELO_scores($scores, $scores, 32);
+                print_r($old_score);
+                $diff_scores = ELO_scores($old_score, $scores, 32);
+                print_r($diff_scores);
                 $classement = self::calcul_classement($diff_scores);
-
+                print_r($classement);
                 for ($j = 0; $j < $m; $j++) {
-                    // Insertion des infos de la partie (avec le score et le classement avant la partie)
+                    // Insertion des infos de la partie (avec le score avant la partie et le classement interne à la partie)
                     // pour chaque joueur
-                    if ($stmt4->execute(array(":id_partie" => $id_partie,
-                        ":id_joueur" => $id_joueur[$j], "id_jeu" => $id_jeu,
+                    if ($stmt4->execute(array(":partie" => $id_partie,
+                        ":joueur" => $joueurs[$j]->slug,
                         ":classement" => $classement[$j], ":score" => $old_score[$j]))
                     ) {
                         $newS = $old_score[$j] + $diff_scores[$j];
-                        $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))
-                        ) {
-                            // on met à jour le classement des autres joueurs
-                            if ($stmt6->execute(array(":new_classement" => $classement_jeu))) {
-                                return 0;
-                            } else
+                        print($newS."\n");
+                        // On met à jour le score du joueur actuel dans sa relation avec le jeu
+                            if ($stmt5->execute(array(":new_score" => $newS,
+                                ":id_jeu" => $jeu->slug, ":id_joueur" => $joueurs[$j]->slug))
+                            ) {
+                            }
+                            else
                                 return 2;
-                        } else
-                            return 2;
                     } else
                         return 2;
                 }
             } else
                 return 2;
-        } else
-            return 2;
+        self::updateClassement();
         return 0;
     }
-}
\ No newline at end of file
+}
diff --git a/app/view/Partie/displayStep0.html b/app/view/Partie/displayStep0.html
index 3e3c51472e3d81bebf46d01d9be2e60445c055c8..1a9b8a8ec044d40d0a5f5374a6327f160aa3490b 100644
--- a/app/view/Partie/displayStep0.html
+++ b/app/view/Partie/displayStep0.html
@@ -7,7 +7,7 @@
         <h2>Formulaire d'ajout de partie</h2>
         <h3>Sélection d'un jeu</h3>
         <div class="addjeu-form">
-			<form method="post" action="verifystep0">
+			<form method="post" action="add_partie/verifystep0">
 				<label for="jeu">Jeu : </label>
 				<select name="jeu" id="jeu">
 				<?php foreach($this->liste as $jeu){ ?>
diff --git a/app/view/Partie/displayStep1.html b/app/view/Partie/displayStep1.html
index cb5d00e9bd4d7dc58a6cb5506a1129ca24a22437..8aa6d5343a529dd62b2f218e5a5dda32c5db8040 100644
--- a/app/view/Partie/displayStep1.html
+++ b/app/view/Partie/displayStep1.html
@@ -2,30 +2,42 @@
 	$page_title = "Formulaire d'ajout de partie"; 
 	include(ROOT."/app/view/Includes/header.include.html"); 
 ?>
-
+<?php $jeuactuel = $this->jeuactuel ?>
     <article>
         <h2>Formulaire d'ajout de partie</h2>
+		<h3>Sélection des joueurs</h3>
         <div class="addjeu-form">
-			<form method="post" action="add_partie/verify">
-				<label for="jeu">Jeu : </label>
-				<select name="jeu" id="jeu">
-				<?php foreach($this->liste as $jeu){ ?>
-					<option><?php echo $jeu->nom; ?></option>
-				<?php } ?>
-				</select><br />
-				<label for="joueurs">Joueurs :</label>
-				<select name="joueurs[]" id="joueurs" multiple="multiple" size="5">
+			<form method="post" action="verifystep1">
+				Jeu : <?php echo $jeuactuel->nom; ?><br />
+				Joueurs :<br />
+
+                <?php for($j=0;$j<$jeuactuel->min_joueurs;$j++){ ?>
+				<select name="joueur<?php echo $j; ?>" id="joueur<?php echo $j; ?>">
 					<?php foreach($this->listej as $joueur){ ?>
-					<option><?php echo $joueur->nom; ?></option>
+					<option><?php echo $joueur->pseudo; ?></option>
 					<?php } ?>
 				</select>
-				<br/>
-				<label for="scores">Scores :</label><input type="text" name="scores" id="scores" /><br/>
-				<div class="submit">
+                <input type="checkbox" name="joueur_check[]" value="<?php echo $j; ?>" checked disabled> a joué.<br />
+                <input type="hidden" name="joueur_check[]" value="<?php echo $j; ?>">
+                <?php } ?>
+
+                <?php for($j=$jeuactuel->min_joueurs;$j<$jeuactuel->max_joueurs;$j++){ ?>
+                <select name="joueur<?php echo $j; ?>" id="joueur<?php  echo $j; ?>">
+                    <?php foreach($this->listej as $joueur){ ?>
+                    <option><?php echo $joueur->pseudo; ?></option>
+                    <?php } ?>
+                </select>
+                <input type="checkbox" name="joueur_check[]" value="<?php echo $j; ?>" checked> a joué.<br />
+                <?php } ?>
+
+                <div class="submit">
 					<input type="reset" name="reset" value="Réinitialiser" />
-					<input type="submit" name="submit" value="Demander l'ajout" />
+					<input type="submit" name="submit" value="Étape suivante" />
 				</div>
 			</form>
+            <form action="../add_partie">
+                <input type="submit" name="submit" value="Étape précédente" />
+            </form>
 		</div>
 	</article>
 
diff --git a/app/view/Partie/displayStep2.html b/app/view/Partie/displayStep2.html
index cb5d00e9bd4d7dc58a6cb5506a1129ca24a22437..c63162b2667e78aed4ea9a9e21f620a174a88cb8 100644
--- a/app/view/Partie/displayStep2.html
+++ b/app/view/Partie/displayStep2.html
@@ -2,30 +2,29 @@
 	$page_title = "Formulaire d'ajout de partie"; 
 	include(ROOT."/app/view/Includes/header.include.html"); 
 ?>
-
+<?php $jeuactuel = $this->jeuactuel ?>
     <article>
         <h2>Formulaire d'ajout de partie</h2>
+		<h3>Entrée des scores</h3>
         <div class="addjeu-form">
-			<form method="post" action="add_partie/verify">
-				<label for="jeu">Jeu : </label>
-				<select name="jeu" id="jeu">
-				<?php foreach($this->liste as $jeu){ ?>
-					<option><?php echo $jeu->nom; ?></option>
-				<?php } ?>
-				</select><br />
-				<label for="joueurs">Joueurs :</label>
-				<select name="joueurs[]" id="joueurs" multiple="multiple" size="5">
-					<?php foreach($this->listej as $joueur){ ?>
-					<option><?php echo $joueur->nom; ?></option>
-					<?php } ?>
-				</select>
-				<br/>
-				<label for="scores">Scores :</label><input type="text" name="scores" id="scores" /><br/>
+			<form method="post" action="verifystep2">
+                Jeu : <?php echo $jeuactuel->nom; ?><br />
+                Joueurs :
+                <ul>
+                    <?php foreach($this->listejactuel as $joueur){ ?>
+                    <li><?php echo $joueur->pseudo; ?> Score obtenu : <input type="text" title="score" name="scores[]" /></li>
+                    <?php } ?>
+                </ul>
+                <br />
 				<div class="submit">
+
 					<input type="reset" name="reset" value="Réinitialiser" />
 					<input type="submit" name="submit" value="Demander l'ajout" />
 				</div>
 			</form>
+            <form action="step1">
+                <input type="submit" name="submit" value="Étape précédente" />
+            </form>
 		</div>
 	</article>