From 23f5bdbb38d882cacc19ecd901bdd9c97a9f9749 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9=20Garnier?= Date: Sat, 24 Dec 2022 13:30:23 +0100 Subject: [PATCH] Modif de la bd + Insertion d'enigme solo depuis le site --- WEB/Config/Config.php | 7 ++- WEB/Controller/AdminController.php | 47 ++++++++++++--- WEB/Controller/EnigmeGateway.php | 13 +++- WEB/Controller/VisitorController.php | 6 +- WEB/Model/AdminModel.php | 24 ++++++++ WEB/View/src/pages/Admin/AddEnigmeSolo.php | 70 ++++++++++++++++++++++ WEB/View/src/pages/{ => Admin}/Admin.php | 2 +- WEB/View/src/pages/Enigme/EnigmePage.php | 5 +- WEB/bd.sql | 4 +- 9 files changed, 155 insertions(+), 23 deletions(-) create mode 100644 WEB/Model/AdminModel.php create mode 100644 WEB/View/src/pages/Admin/AddEnigmeSolo.php rename WEB/View/src/pages/{ => Admin}/Admin.php (96%) diff --git a/WEB/Config/Config.php b/WEB/Config/Config.php index 7e90213d..3d21e68f 100644 --- a/WEB/Config/Config.php +++ b/WEB/Config/Config.php @@ -3,8 +3,8 @@ $rep =''; // BD -$dsn = './scripted.db'; -// $dsn = 'C:\\wamp64\\www\\scripted.db'; +// $dsn = './scripted.db'; +$dsn = 'C:\\wamp64\\www\\scripted.db'; //Sel de hashage $sel = "JeSuisUnSeldeHashageEtJeSuisUniqueEtTresSecuriseEtJeSuisTresLong"; @@ -17,7 +17,8 @@ $vues['login'] = 'View/src/pages/LogSign/Login.php'; $vues['signUp'] = 'View/src/pages/LogSign/SignUp.php'; $vues['test'] = 'View/src/pages/FirstTests/FirstTest1.html'; $vues['next'] = 'View/src/pages/FirstTests/FirstTest'; -$vues['admin'] = 'View/src/pages/Admin.php'; +$vues['admin'] = 'View/src/pages/Admin/Admin.php'; +$vues['addEnigmeSolo'] = 'View/src/pages/Admin/AddEnigmeSolo.php'; // Enigme $vues['enigme'] = 'View/src/pages/Enigme/Palindrome.html'; $vues['enigmePage'] = 'View/src/pages/Enigme/EnigmePage.php'; diff --git a/WEB/Controller/AdminController.php b/WEB/Controller/AdminController.php index 8e200053..65473d53 100644 --- a/WEB/Controller/AdminController.php +++ b/WEB/Controller/AdminController.php @@ -54,11 +54,14 @@ class AdminController extends UserController case "goToQueue": $this->goToQueue()(); break; + case "goToAddEnigmeSolo": + $this->goToAddEnigmeSolo()(); + break; case "logout": $this->logout(); break; - case "addNewEnigme": - $this->addNewEnigme(); + case "addNewEnigmeSolo": + $this->addNewEnigmeSolo(); break; default: $error = "Action non valide"; @@ -74,14 +77,44 @@ class AdminController extends UserController } } - function goToAdmin() + public function goToAdmin() { - global $rep, $vues; - require($rep . $vues['admin']); + try { + global $rep, $vues; + require($rep . $vues['admin']); + } catch (Exception $e) { + $error = $e->getMessage(); + require($rep . $vues['erreur']); + } } + public function goToAddEnigmeSolo() + { + try { + global $rep, $vues; + require($rep . $vues['addEnigmeSolo']); + } catch (Exception $e) { + $error = $e->getMessage(); + require($rep . $vues['erreur']); + } + } - function addNewEnigme() + public function addNewEnigmeSolo() { - + try { + global $rep, $vues; + $model = new AdminModel(); + $nom = $_POST['nom']; + $enonce = $_POST['enigme']; + $aide = $_POST['aide']; + $rappel = $_POST['rappel']; + $exemple = $_POST['exemple']; + $test = $_POST['test']; + $solution = $_POST['solution']; + $enigme = $model->addNewEnigmeSolo($nom, $enonce, $aide, $rappel, $exemple, $test, $solution); + require($rep . $vues['enigmePage']); + } catch (Exception $e) { + $error = $e->getMessage(); + require($rep . $vues['erreur']); + } } } \ No newline at end of file diff --git a/WEB/Controller/EnigmeGateway.php b/WEB/Controller/EnigmeGateway.php index b3e3cfde..8887a53c 100644 --- a/WEB/Controller/EnigmeGateway.php +++ b/WEB/Controller/EnigmeGateway.php @@ -35,13 +35,13 @@ class EnigmeGateway */ public function insert(Enigme $enigme) { - $query = "INSERT INTO Enigme VALUES (:id,:nom,:enonce,:aide,:rappel,:solution,:test,:tempsDeResolution,:points)"; + $query = "INSERT INTO Enigme VALUES (NULL,:nom,:enonce,:aide,:rappel,:exemple,:solution,:test,:tempsDeResolution,:points)"; $this->con->executeQuery($query, array( - ':id' => array($enigme->getIdEnigme(),SQLITE3_INTEGER), ':nom' => array($enigme->getNom(), SQLITE3_TEXT), ':enonce' => array($enigme->getEnonce(), SQLITE3_TEXT), ':aide' => array($enigme->getAide(), SQLITE3_TEXT), ':rappel' => array($enigme->getRappel(), SQLITE3_TEXT), + ':exemple' => array($enigme->getExemple(), SQLITE3_TEXT), ':solution' => array($enigme->getSolution(), SQLITE3_TEXT), ':test' => array($enigme->getTest(), SQLITE3_TEXT), ':tempsDeResolution' => array($enigme->getTempsDeResolution(), SQLITE3_INTEGER), @@ -121,7 +121,14 @@ class EnigmeGateway $tabEnigme=EnigmeFactory::create($results); return $tabEnigme; } - + public function findLastEnigma() : array + { + $query = "SELECT * FROM Enigme ORDER BY id DESC LIMIT 1"; + $this->con->executequery($query); + $results = $this->con->getResults(); + $tabEnigme=EnigmeFactory::create($results); + return $tabEnigme; + } public function showAll(): void { $query = "SELECT * FROM Enigme"; diff --git a/WEB/Controller/VisitorController.php b/WEB/Controller/VisitorController.php index af65f75d..2ccf3e1f 100644 --- a/WEB/Controller/VisitorController.php +++ b/WEB/Controller/VisitorController.php @@ -50,7 +50,7 @@ class VisitorController global $rep, $vues; require($rep . $vues['main']); } catch (Exception $e) { - $error = "404"; + $error = $e->getMessage(); require($rep . $vues['erreur']); } } @@ -60,7 +60,7 @@ class VisitorController global $rep, $vues; require($rep . $vues['login']); } catch (Exception $e) { - $error = "404"; + $error = $e->getMessage(); require($rep . $vues['erreur']); } } @@ -70,7 +70,7 @@ class VisitorController global $rep, $vues; require($rep . $vues['signUp']); } catch (Exception $e) { - $error = "404"; + $error = $e->getMessage(); require($rep . $vues['erreur']); } } diff --git a/WEB/Model/AdminModel.php b/WEB/Model/AdminModel.php new file mode 100644 index 00000000..5afdb32b --- /dev/null +++ b/WEB/Model/AdminModel.php @@ -0,0 +1,24 @@ +enigme_gateway = new EnigmeGateway(); + $this->nettoyage = new Nettoyage(); + $this->validation = new Validation(); + } + + public function addNewEnigmeSolo(string $nom,string $enonce,string $aide,string $rappel,string $exemple,string $test,string $solution) : Enigme + { + $enigme = new Enigme(1,$nom, $enonce, $aide, $rappel, $exemple, $solution, $test); + $this->enigme_gateway->insert($enigme); + $tabEnigme = $this->enigme_gateway->findLastEnigma(); + return $tabEnigme[0]; + } +} \ No newline at end of file diff --git a/WEB/View/src/pages/Admin/AddEnigmeSolo.php b/WEB/View/src/pages/Admin/AddEnigmeSolo.php new file mode 100644 index 00000000..3df6621e --- /dev/null +++ b/WEB/View/src/pages/Admin/AddEnigmeSolo.php @@ -0,0 +1,70 @@ + + + + Admin + + + + + + + + + +
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+ +
+ + \ No newline at end of file diff --git a/WEB/View/src/pages/Admin.php b/WEB/View/src/pages/Admin/Admin.php similarity index 96% rename from WEB/View/src/pages/Admin.php rename to WEB/View/src/pages/Admin/Admin.php index 46398068..92d0e03b 100644 --- a/WEB/View/src/pages/Admin.php +++ b/WEB/View/src/pages/Admin/Admin.php @@ -19,7 +19,7 @@ -
+
diff --git a/WEB/View/src/pages/Enigme/EnigmePage.php b/WEB/View/src/pages/Enigme/EnigmePage.php index 79b4e398..ea786f0d 100644 --- a/WEB/View/src/pages/Enigme/EnigmePage.php +++ b/WEB/View/src/pages/Enigme/EnigmePage.php @@ -44,9 +44,6 @@

findById(1); - $enigme = $tabEnigme[0]; echo $enigme->getNom(); ?>

@@ -138,7 +135,7 @@ type="text/javascript" charset="utf-8"> getNom() . '.js">'; + // echo ''; ?> diff --git a/WEB/bd.sql b/WEB/bd.sql index a9ab854f..d8a0e1a0 100644 --- a/WEB/bd.sql +++ b/WEB/bd.sql @@ -26,8 +26,8 @@ rappel varchar(250), exemple varchar(250), solution varchar(250) NOT NULL, test varchar(250) NOT NULL, -tempsDeResolution numeric CHECK (tempsDeResolution >0), -points numeric CHECK (points >0) +tempsDeResolution numeric CHECK (tempsDeResolution >=0), +points numeric CHECK (points >=0) ); CREATE TABLE Partie(