diff --git a/app/controller/RegisterController.php b/app/controller/RegisterController.php
index ac92392528c143d9ee9c4d95008385f0d95b2c3b..b3b922c2f2b97c10345c984514c1cd02527f6f5a 100644
--- a/app/controller/RegisterController.php
+++ b/app/controller/RegisterController.php
@@ -10,7 +10,89 @@ class RegisterController extends Controller { // classe de contrôleur pour l'in
 		$this->view->display();
 	}
 	
-	public function verify() { // vérifie si le login est disponible 
+	public function verify() { // vérifie si les données envoyées sont valides
+		if(!isset($_POST['method']) || !isset($_POST['value'])) { // si l'une des données manque, erreur
+			//appeler une fonction d'erreur
+			echo "<h1>Erreur : données absentes</h1>";
+			die();
+		}
+		
+		$method = $_POST['method'];
+		$value = $_POST['value'];
+		
+		$passed = false;
+		$retval = '';
+		switch($method) {
+			case 'checkPseudo':
+				// vérifie que le pseudo est libre
+				$slug_joueur = self::slugify($value);
+				if(Register::checkPseudo($slug_joueur)) {
+					$passed = true;
+					$retval = "Pseudo valide";
+				}
+				else {
+					$passed = false;
+					$retval = "Déjà utilisé";
+				}
+				break;
+			
+			case 'checkPassword':
+				//if(preg_match("#^[a-z0-9._-]+(@|%40)[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $value)) {
+					$passed = true;
+					$retval = "Mdp valide";
+				//}
+				//else {
+				//	$passed = false;
+				//	$retval = "Mdp invalide";
+				//}
+				break;
+			
+			case 'checkPaswordBis':
+				$mdp = explode("¤", $value);
+				if($mdp[0]==$mdp[1]) {
+					$passed = true;
+					$retval = "Mdp valide";
+				}
+				else {
+					$passed = false;
+					$retval = "Mdp différents";
+				}
+				break;
+				
+			case 'checkEmail':
+				if(preg_match("#^[a-z0-9._-]+(@|%40)[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $value)) {
+					// deuxième test : le mail est il déjà utilisé ?
+					//$value = str_replace("%40", "@", $value); // on corrige le "%40" en "@" pour vérifier l'existence
+					if(Register::checkEmail($value)) {
+						$passed = true;
+						$retval = "E-mail valide";
+					}
+					else {
+						$passed = false;
+						$retval = "Déjà utilisé";
+					}
+				}
+				else {
+					$passed = false;
+					$retval = "Format invalide";
+				}
+				break;
+		
+			default: exit;
+		}
+		
+		if($passed) {
+			// set the message colour to green and the checkbox to checked
+			echo '{"success":true, "text":"'.$retval.'", "color":"green"}';
+		
+		} 
+		else {
+			// set the message colour to red, the checkbox to unchecked and focus back on the field
+			echo '{"success":false, "text":"'.$retval.'", "color":"red"}';
+		}
+	}
+	
+	public function save() { // vérifie les données d'inscription, et enregistre les infos dans la BDD
 		if(!isset($_POST['pseudo']) || !isset($_POST['password']) || !isset($_POST['nom']) || !isset($_POST['prenom']) || !isset($_POST['email'])) { // si l'une des données manque, erreur
 			//appeler une fonction d'erreur
 			echo "<h1>Erreur : variables absentes</h1>";
diff --git a/app/kernel/Router.php b/app/kernel/Router.php
index 8f657f08f64567055d54495a7ada1751c0594320..7f8698becd816a8f390111802edb41746eb00bc8 100644
--- a/app/kernel/Router.php
+++ b/app/kernel/Router.php
@@ -84,10 +84,14 @@ class Router { // classe PHP permettant l'analyse de l'URL des requêtes
 				$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é de l'inscription
+			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){ // formulaire d'ajout de partie
diff --git a/app/model/Register.php b/app/model/Register.php
index 146b0695f1e1ead660b7eaee23eeb33bdb7b91e3..f9141cbe7514304dee7e8a47afc7883d58a2c412 100644
--- a/app/model/Register.php
+++ b/app/model/Register.php
@@ -1,6 +1,34 @@
 <?php
 
 class Register extends Model { // classe de modèle pour l'inscription
+	public static function checkPseudo($slug_joueur) { // méthode permettant de vérifier si un pseudo est libre
+		
+		$db = Database::getInstance(); // on récupère la connexion à la BDD
+		$sql = "SELECT * FROM R_joueur WHERE slug = :slug";
+		$req = $db->prepare($sql); // on prépare la requête
+		$req->execute(array(":slug" => $slug_joueur)); // on remplace les variables dans la requête
+		
+		if($result = $req->fetch()) { // si un enregistrement existe en BDD, on retourne 0
+			return 0;
+		}
+		
+		return 1; // sinon : OK -> on retourne  1
+	}
+	
+	public static function checkEmail($email) { // méthode permettant de vérifier si un pseudo est libre
+		
+		$db = Database::getInstance(); // on récupère la connexion à la BDD
+		$sql = "SELECT * FROM R_joueur WHERE email = :email";
+		$req = $db->prepare($sql); // on prépare la requête
+		$req->execute(array(":email" => $email)); // on remplace les variables dans la requête
+		
+		if($result = $req->fetch()) { // si un enregistrement existe en BDD, on retourne 0
+			return 0;
+		}
+		
+		return 1; // sinon : OK -> on retourne  1
+	}
+	
 	public static function check($slug_joueur, $email) { // méthode permettant de vérifier si un compte-joueur est libre
 		// OK si personne avec même pseudo ou même adresse mail n'existe dans la BDD
 		// renvoie 1 si le compte est libre (= n'existe pas)