diff --git a/app/controller/JeuController.php b/app/controller/JeuController.php
index 84da026d732f7b9e551b238734f6981e35b2e29f..a4e7e5eed04e9505ed2113f88f4ff9252099def2 100644
--- a/app/controller/JeuController.php
+++ b/app/controller/JeuController.php
@@ -32,11 +32,39 @@ class JeuController extends Controller {
 	}
 
 	public function displayFormAdd() {
+        session_start();
+        
+        if(isset($_SESSION['addRequestErrCode'])) { // si message d'erreur
+            $errCode = $_SESSION['addRequestErrCode'];
+            if ($errCode == 1) { // on détermine le message
+                $errMsg = "<h3>Ce jeu est déjà dans la base !</h3>";
+            } elseif ($errCode == 2) {
+                $errMsg = "<h3>Image manquante</h3>";
+            } elseif ($errCode == 5) {
+                $errMsg = "<h3>Problème sur l'image</h3>";
+            } elseif ($errCode == 6) {
+                $errMsg = "<h3>Le fichier n'est pas une image</h3>";
+            } elseif ($errCode == 7) {
+                $errMsg = "<h3>L'image est trop grande</h3>";
+            } elseif ($errCode == 8) {
+                $errMsg = "<h3>Les valeurs pour les joueurs et/ou les équipes doivent être des nombres.</h3>";
+            } elseif ($errCode == 9) {
+                $errMsg = "<h3>Les valeurs pour les joueurs et/ou les équipes sont incohérentes.</h3>";
+            }
+            else{
+                $errMsg = "<h3>Exception non gérée.</h3>";
+            }
+            unset($_SESSION['addRequestErrCode']);
+            $this->view->errMsg = $errMsg;
+        }
+         
 		$this->view->display();
 	}
 
 	public function addRequest() {
-		if(!isset($_POST['nom']) || !isset($_POST['description'])) { // si l'une des données manque, erreur
+		session_start();
+		if(!isset($_POST['nom']) || !isset($_POST['description']) || !isset($_POST['type']) || !isset($_POST['type_scores'])
+		|| !isset($_POST['max_joueurs']) ||!isset($_POST['min_joueurs'])) { // si l'une des données manque, erreur
 			//appeler une fonction d'erreur
 			echo "<h1>Erreur : variables absentes</h1>";
 			die();
@@ -46,25 +74,89 @@ class JeuController extends Controller {
         $data['slug_jeu'] = self::slugify($_POST['nom']);
 
         $result = Jeu::checkExists($data['slug_jeu']); // vérifie si le jeu n'est pas encore dans la BDD
-
+        $_POST['type_scores'] = self::slugify($_POST['type_scores']);
         if($result == 0) { // connexion valide
 			if(isset($_FILES['image'])) {
 				list($err, $image) = getImage($_FILES['image'], 512, 512);
 				if ($err == 0) {
 					saveImage($image, ROOT."/www/images/jeu/".$data['slug_jeu'].".jpg");
 				} elseif($err == 1) {
-					session_start(); // on démarre une session pour avoir accès aux variables superglobales de session
 					$_SESSION["addRequestErrCode"] = 2; // on stocke le code d'erreur
 					header('Location:../addjeu'); // on redirige vers la page de formulaire (il faut faire un retour dans le dossier parent pour que ça fonctionne)
 					die();
 				} else {
-					session_start(); // on démarre une session pour avoir accès aux variables superglobales de session
 					$_SESSION["addRequestErrCode"] = $err; // on stocke le code d'erreur
 					header('Location:../addjeu'); // on redirige vers la page de formulaire (il faut faire un retour dans le dossier parent pour que ça fonctionne)
 					die();
 				}
-				Jeu::addRequest($data['nom'], $data['description'], $data['slug_jeu'], 0);// on ajoute le jeu à la BDD avec
+
+				if(!is_numeric($data['max_joueurs'])) {
+					$_SESSION["addRequestErrCode"] = 8; // on stocke le code d'erreur
+					header('Location:../addjeu'); // on redirige vers la page de formulaire (il faut faire un retour dans le dossier parent pour que ça fonctionne)
+					die();
+				}
+
+				if($data['min_joueurs'] < 0) {
+					$_SESSION["addRequestErrCode"] = 9; // on stocke le code d'erreur
+					header('Location:../addjeu'); // on redirige vers la page de formulaire (il faut faire un retour dans le dossier parent pour que ça fonctionne)
+					die();
+				}
+
+				if(!isset($data['max_joueurs_inf']) && ($data['max_joueurs'] < 0 || $data['max_joueurs'] < $data['min_joueurs'])) {
+                    if(!is_numeric($data['min_joueurs']))
+                        $_SESSION["addRequestErrCode"] = 8;
+                    else
+                        $_SESSION["addRequestErrCode"] = 9; // on stocke le code d'erreur
+					header('Location:../addjeu'); // on redirige vers la page de formulaire (il faut faire un retour dans le dossier parent pour que ça fonctionne)
+					die();
+				}
+
+				if($data['type'] == "Chacun pour soi"){
+                    $_POST['type'] = "duels";
+					if(isset($data['max_joueurs_inf']) && $data['max_joueurs_inf'])
+						Jeu::addRequest($data['nom'], $data['description'], $data['slug_jeu'], 0, $_POST['type'], $data['type_scores'], $data['min_joueurs']);// on ajoute le jeu à la BDD avec
+					else{
+						Jeu::addRequest($data['nom'], $data['description'], $data['slug_jeu'], 0, $_POST['type'], $data['type_scores'], $data['min_joueurs'], $data['max_joueurs']);// on ajoute le jeu à la BDD avec
+					}
 				header('Location:requestvalid'); // on redirige vers la  page OK
+				}
+				else if ($data['type'] == "Équipes"){
+                    $_POST['type'] = "equipes";
+					if(!isset($data['max_equipes']) || !isset($data['min_equipes'])) {
+						echo "<h1>Erreur : variables absentes</h1>";
+						die();
+					}
+					if(!is_numeric($data['max_equipes']) || !is_numeric($data['min_equipes'])) {
+						$_SESSION["addRequestErrCode"] = 8; // on stocke le code d'erreur
+						header('Location:../addjeu'); // on redirige vers la page de formulaire (il faut faire un retour dans le dossier parent pour que ça fonctionne)
+						die();
+					}
+					if($data['min_equipes'] < 0) {
+						$_SESSION["addRequestErrCode"] = 9; // on stocke le code d'erreur
+						header('Location:../addjeu'); // on redirige vers la page de formulaire (il faut faire un retour dans le dossier parent pour que ça fonctionne)
+						die();
+					}
+					if(!isset($data['max_equipes_inf']) && ($data['max_equipes'] < 0 || $data['max_equipes'] < $data['min_equipes'])) {
+						$_SESSION["addRequestErrCode"] = 9; // on stocke le code d'erreur
+						header('Location:../addjeu'); // on redirige vers la page de formulaire (il faut faire un retour dans le dossier parent pour que ça fonctionne)
+						die();
+					}
+                    if(isset($data['max_joueurs_inf']) && $data['max_joueurs_inf']){
+					if(isset($data['max_equipes_inf']) && $data['max_equipes_inf'])
+						Jeu::addRequest($data['nom'], $data['description'], $data['slug_jeu'], 0, $data['type'], $data['type_scores'], $data['min_joueurs'], null, $data['min_equipes']);// on ajoute le jeu à la BDD avec
+					else{
+						Jeu::addRequest($data['nom'], $data['description'], $data['slug_jeu'], 0, $data['type'], $data['type_scores'], $data['min_joueurs'], null, $data['min_equipes'], $data['max_equipes']);// on ajoute le jeu à la BDD avec
+					}
+                    }
+                    else{
+                        if(isset($data['max_equipes_inf']) && $data['max_equipes_inf'])
+                            Jeu::addRequest($data['nom'], $data['description'], $data['slug_jeu'], 0, $data['type'], $data['type_scores'], $data['min_joueurs'], $data['max_joueurs'], $data['min_equipes']);// on ajoute le jeu à la BDD avec
+                        else{
+                            Jeu::addRequest($data['nom'], $data['description'], $data['slug_jeu'], 0, $data['type'], $data['type_scores'], $data['min_joueurs'], $data['max_joueurs'],  $data['min_equipes'], $data['max_equipes']);// on ajoute le jeu à la BDD avec
+                        }
+                    }
+                    header('Location:requestvalid');
+				}
 			} else {
 				session_start(); // on démarre une session pour avoir accès aux variables superglobales de session
 				$_SESSION["addRequestErrCode"] = 2; // on stocke le code d'erreur
diff --git a/app/kernel/View.php b/app/kernel/View.php
index 65c48bef3086f2660d4fbde60f864e7a3d641327..6b1a1467b901b7aaad3c3da53046f13af5e38748 100644
--- a/app/kernel/View.php
+++ b/app/kernel/View.php
@@ -24,6 +24,9 @@ class View { // classe abstraite pour les vues
 	}
 	
 	public function __get($key) { // idem, mais pour les getters. :-)
-		return $this->data[$key];
+		if(isset($this->data[$key]))
+			return $this->data[$key];
+		else
+			return null;
 	}
 }
diff --git a/app/model/Jeu.php b/app/model/Jeu.php
index f873c0355e543749ab6e61aef73c25f3e11c95f4..672342e38d2dd9899d2572ca13682bbf4175d36b 100644
--- a/app/model/Jeu.php
+++ b/app/model/Jeu.php
@@ -75,11 +75,22 @@ class Jeu extends Model {
       return 0; // on aurait pu mettre deux return (un dans le if et un ici), mais bon...
    }
 
-   public static function addRequest($nom_jeu, $description, $slug_jeu, $est_valide) {
+   public static function addRequest($nom_jeu, $description, $slug_jeu, $est_valide, $type, $type_scores, $min_joueurs, $max_joueurs=null, $min_equipes=null, $max_equipes=null) {
       $db = Database::getInstance();
-      $sql = "INSERT INTO R_jeu (nom, description, slug, est_valide) VALUES (:nom, :description, :slug, :est_valide);";
-      $stmt = $db->prepare($sql);
-      if($stmt->execute(array(":nom" => $nom_jeu, ":description" => $description, ":slug" => $slug_jeu, ":est_valide" => $est_valide))) {
+      $sql = "INSERT INTO R_jeu (nom, description, slug, est_valide, min_joueurs, max_joueurs, min_equipes, max_equipes, type, type_scores)
+              VALUES (:nom, :description, :slug, :est_valide, :min_joueurs, :max_joueurs, :min_equipes, :max_equipes, :type, :type_scores);";
+      print($nom_jeu);
+       print($description);
+       print($slug_jeu);
+       print($est_valide);
+       print($type);
+       print($type_scores);
+       print($min_joueurs);
+       print($max_joueurs);
+       print($min_equipes);
+       print($max_equipes);
+       $stmt = $db->prepare($sql);
+      if($stmt->execute(array(":nom" => $nom_jeu, ":description" => $description, ":slug" => $slug_jeu, ":est_valide" => $est_valide, ":type" => $type, ":type_scores" => $type_scores, ":min_joueurs" => $min_joueurs, ":max_joueurs" => $max_joueurs, ":min_equipes" => $min_equipes, ":max_equipes" => $max_equipes))) {
           //ok
       }
        else {
diff --git a/app/view/Jeu/displayFormAdd.html b/app/view/Jeu/displayFormAdd.html
index 195b72b65701b9737ce4fad7cc45282a8bdf8759..f40d5ca9eec09c8c450d42b5fc7ded51c4795fc5 100644
--- a/app/view/Jeu/displayFormAdd.html
+++ b/app/view/Jeu/displayFormAdd.html
@@ -1,5 +1,4 @@
-<?php 
-	session_start();
+<?php
 	
 	if(!isset($_SESSION['connected']) || $_SESSION['connected'] != true) {
 		header('Location:'.BASE_URL);
@@ -9,38 +8,42 @@
 	include(ROOT."/app/view/Includes/header.include.html");
 ?>
 
-	<?php
-			if(isset($_SESSION['addRequestErrCode'])) { // si message d'erreur
-				$errCode = $_SESSION['addRequestErrCode'];
-				if($errCode == 1) { // on détermine le message
-					$errMsg = '<h3>Ce jeu est déjà dans la base !</h3>';
-				} elseif($errCode == 2) {
-					$errMsg = '<h3>Image manquante</h3>';
-				} elseif($errCode == 5) {
-					$errMsg = '<h3>Problème sur l\'image</h3>';
-				} elseif($errCode == 6) {
-					$errMsg = '<h3>Le fichier n\'est pas une image</h3>';
-				} elseif($errCode == 7) {
-					$errMsg = '<h3>L\'image est trop grande</h3>';
-				}
-				echo '<article class="msg-erreur">'.$errMsg.'</article>'; // on affiche le message
-				unset($_SESSION['addRequestErrCode']); // on retire la variable de session
-			}
-	?>
-   
-    <article>
-        <h2>Formulaire de demande d'ajout de jeu</h2>
-        <div class="addjeu-form">
-		   <form method="post" action="addjeu/addrequest" enctype="multipart/form-data">
-				<label for="nom">Nom du jeu :</label> <input type="text" name="nom" required="" id="nom" /> <br/>
-				<label for="description">Description :</label> <textarea name="description" id="description" ></textarea> <br/>
-				<label for="image">Image du jeu: </label>	<input type="file" required="" name="image" id="image" /><br/>
-				<div class="submit">
-					<input type="reset" name="reset" value="Réinitialiser">
-					<input type="submit" name="submit" value="Demander l'ajout">
-				</div>
-		   </form>
-        </div>
-    </article>
-	
+<?php	if (!is_null($this->errMsg)){ ?>
+<article class="msg-erreur"><?php echo $this->errMsg;?></article>
+<?php } ?>
+
+<article>
+    <h2>Formulaire de demande d'ajout de jeu</h2>
+    <div class="addjeu-form">
+        <form method="post" action="addjeu/addrequest" enctype="multipart/form-data">
+            <label for="nom">Nom du jeu :</label> <input type="text" name="nom" required="" id="nom"/> <br/>
+            <label for="description">Description :</label> <textarea name="description" id="description"></textarea>
+            <br/>
+            <label for="type">Type de jeu :</label>
+            <select name="type" required="" id="type">
+                <option>Équipes</option>
+                <option>Chacun pour soi</option>
+            </select><br/>
+
+            <label for="type_scores">Type du résultat :</label>
+            <select name="type_scores" required="" id="type_scores">
+                <option>Scores</option>
+                <option>Classement</option>
+            </select><br/>
+
+            <label for="max_joueurs">Joueurs max : </label><input type="text" name="max_joueurs" id="max_joueurs"/><br/>
+            <label for="max_joueurs_inf">Joueurs max infini ?</label><input type="checkbox" name="max_joueurs_inf" id="max_joueurs_inf" value="1">
+            <label for="min_joueurs">Joueurs min : </label><input type="text" name="min_joueurs" required="" id="min_joueurs"/><br/>
+            <label for="min_equipes">Equipes max : </label><input type="text" name="min_equipes" id="min_equipes"/><br/>
+            <label for="max_equipes">Equipes min : </label><input type="text" name="max_equipes" id="max_equipes"/><br/>
+            <label for="max_equipes_inf">Equipes max infini ?</label><input type="checkbox" name="max_equipes_inf" id="max_equipes_inf" value="1">
+            <label for="image">Image du jeu: </label> <input type="file" required="" name="image" id="image"/><br/>
+            <div class="submit">
+                <input type="reset" name="reset" value="Réinitialiser">
+                <input type="submit" name="submit" value="Demander l'ajout">
+            </div>
+        </form>
+    </div>
+</article>
+
 <?php include(ROOT."/app/view/Includes/footer.include.html"); ?>
diff --git a/valeurs.sql b/valeurs.sql
index 9d93f79db8598bd630345773db44b238e9824eb8..4d6c35f844785f446011b9a0f536483b45d1ded5 100644
--- a/valeurs.sql
+++ b/valeurs.sql
@@ -1,8 +1,9 @@
 INSERT INTO R_jeu (nom, description, slug, est_valide, min_joueurs, max_joueurs, min_equipes, max_equipes, type) VALUES
-('Rencontres Cosmiques', 'Jeu de plateau de 3 à 6 joueurs dont le but consiste à remporter cinq planètes adverses.', 'rencontres-cosmiques', 1, 3, 5, NULL, NULL, 'duels'),
-('Jeu Équipes', 'cats', 'jeu-equipes', 0, 0, NULL, 0, 4, 'equipes');
+('Rencontres Cosmiques', 'Jeu de plateau de 3 à 6 joueurs dont le but consiste à remporter cinq planètes adverses.', 'rencontres-cosmiques', 1, 3, 5, NULL, NULL, 'duels', 'scores'),
+('Jeu Équipes', 'cats', 'jeu-equipes', 0, 0, NULL, 0, 4, 'equipes', 'scores');
 
-INSERT INTO R_joueur (slug, pseudo, password, nom, prenom, email, description) VALUES
+INSERT INTO R_joueur (slug, pseudo, password, nom, prenom, email, description, avatar) VALUES
+<<<<<<< HEAD
 ('nestor', 'Nestor', '$2y$10$CwRFu66YRrpI2dFmLWWjeeDn2GI5Gup5ililfJsT5HDE.zyiAG/6m', 'Bochet', 'Vincent', 'vbochet@gmail.com', 'L''un des quatre membres du groupe, le moins joueur des quatre. :)', 0),
 ('nestor1', 'Nestor1', '', 'Bochet1', 'Vincent', 'vbochet1@gmail.com', 'L''un des quatre membres du groupe, le moins joueur des quatre. :)', 0),
 ('nestor2', 'Nestor2', '', 'Bochet2', 'Vincent', 'vbochet2@gmail.com', 'L''un des quatre membres du groupe, le moins joueur des quatre. :)', 0),