diff --git a/app/controller/JeuController.php b/app/controller/JeuController.php index bc6d4bac7e0e129e92bb82c18405655bad4ed57f..a4e7e5eed04e9505ed2113f88f4ff9252099def2 100644 --- a/app/controller/JeuController.php +++ b/app/controller/JeuController.php @@ -74,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/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 {