diff --git a/WEB/Config/Config.php b/WEB/Config/Config.php index 621b4e7a..a5a63150 100644 --- a/WEB/Config/Config.php +++ b/WEB/Config/Config.php @@ -15,6 +15,8 @@ $vues['main'] = 'View/src/pages/Main.php'; $vues['presentation'] = 'View/src/pages/Presentation.html'; $vues['login'] = 'View/src/pages/LogSign/Login.php'; $vues['signUp'] = 'View/src/pages/LogSign/SignUp.php'; +$vues['mail'] = 'View/src/pages/LogSign/Mail.php'; +$vues['confirm'] = 'View/src/pages/LogSign/Confirm.php'; $vues['test'] = 'View/src/pages/FirstTests/FirstTest1.html'; $vues['next'] = 'View/src/pages/FirstTests/FirstTest'; $vues['admin'] = 'View/src/pages/Admin/Admin.php'; @@ -33,6 +35,10 @@ $vues['queue'] = 'View/src/pages/Multijoueur/Queue.php'; $vues['enigmePage'] = 'View/src/pages/Enigme/EnigmePage.php'; // Server $server = './server.js'; +$serverAdress = "http://82.165.180.114"; +$port= "3000"; +//modules +$modules = 'node_module/'; //Error $vues['erreur'] = 'View/src/pages/Erreur.php'; diff --git a/WEB/Controller/AdminController.php b/WEB/Controller/AdminController.php index e8b2d385..d32c7166 100644 --- a/WEB/Controller/AdminController.php +++ b/WEB/Controller/AdminController.php @@ -27,27 +27,6 @@ class AdminController extends UserController case "goToTest": $this->goToTest(); break; - case "goToChouette": - $this->goToChouette(); - break; - case "goToCesarEncrypt": - $this->goToCesarEncrypt(); - break; - case "goToCesarDecrypt": - $this->goToCesarDecrypt(); - break; - case "goToChuckNorris": - $this->goToChuckNorris(); - break; - case "goToHanoi": - $this->goToHanoi(); - break; - case "goToTrianglePascal": - $this->goToTrianglePascal(); - break; - case "goToDoubleElement": - $this->goToDoubleElement(); - break; case "goToNext": $this->goToNext(); break; diff --git a/WEB/Controller/FrontController.php b/WEB/Controller/FrontController.php index 522e8a00..2660e2ea 100644 --- a/WEB/Controller/FrontController.php +++ b/WEB/Controller/FrontController.php @@ -4,7 +4,7 @@ class FrontController function __construct() { try { - global $error, $view, $rep; + global $error, $vues, $rep; $nettoyage = new Nettoyage(); session_start(); // Check role permissions @@ -23,7 +23,7 @@ class FrontController new UserController(); } else if (method_exists('UserController', $action) == false) { $error = "Action non valide " . $action; - require($rep . $view['erreur']); + require($rep . $vues['erreur']); } else { //echo "action user valide"; $_REQUEST['action'] = $action; @@ -36,7 +36,7 @@ class FrontController new AdminController(); } else if (method_exists('AdminController', $action) == false) { $error = "Action non valide" . $action; - require($rep . $view['erreur']); + require($rep . $vues['erreur']); } else { //echo "action admin valide"; $_REQUEST['action'] = $action; @@ -49,7 +49,7 @@ class FrontController } } catch (Exception $e) { $error = $e->getMessage(); - require($rep . $view['erreur']); + require($rep . $vues['erreur']); } } } \ No newline at end of file diff --git a/WEB/Controller/UserController.php b/WEB/Controller/UserController.php index 07b14095..0ad47bbb 100644 --- a/WEB/Controller/UserController.php +++ b/WEB/Controller/UserController.php @@ -109,13 +109,16 @@ class UserController public function goToQueue() { try { - global $rep, $vues, $error; + global $rep, $vues, $error; //$serverAdress,$port; require($rep . $vues['queue']); $model = new UserModel(); $model->addToQueue(); - $userGroup = $model->findUserGroup(); - $io = getenv('io'); - $io->to($userGroup)->emit("launchGame"); + $userGroup = $model->findUserGroup();/*.$serverAdress.$port*/ + echo ''; } catch (Exception $e) { $error = $e->getMessage(); require($rep . $vues['erreur']); diff --git a/WEB/Controller/VisitorController.php b/WEB/Controller/VisitorController.php index 2ccf3e1f..204892d2 100644 --- a/WEB/Controller/VisitorController.php +++ b/WEB/Controller/VisitorController.php @@ -28,9 +28,18 @@ class VisitorController case "goToSignUp": $this->goToSignUp(); break; + case "goToMail": + $this->goToMail(); + break; case "goToQueue": $this->goToLogin(); break; + case "sendMail": + $this->sendMail(); + break; + case "goToReset": + $this->goToReset(); + break; default: $error = "Action non valide"; require($rep . $vues['erreur']); @@ -74,6 +83,16 @@ class VisitorController require($rep . $vues['erreur']); } } + public function goToMail() + { + try { + global $rep, $vues; + require($rep . $vues['mail']); + } catch (Exception $e) { + $error = $e->getMessage(); + require($rep . $vues['erreur']); + } + } public function signUp() { try { @@ -102,4 +121,30 @@ class VisitorController require($rep . $vues['erreur']); } } + + public function sendMail() + { + $nettoyage = new Nettoyage(); + $code = 10; + $to = $nettoyage->cleanEmail($_POST['email']); + $subject = 'Reset your password'; + $message = 'Hello, you can reset your password here : http://82.165.180.114/index.php?action=goToConfirm&code='.$code; + $headers = 'From: scripted@gmail.com' . "\r\n" . + // 'Reply-To: sender@example.com' . "\r\n" . + 'X-Mailer: PHP/' . phpversion(); + + mail($to, $subject, $message, $headers); + $this->goToMail(); + } + + public function goToConfirm() + { + try { + global $rep, $vues; + require($rep . $vues['confirm']); + } catch (Exception $e) { + $error = $e->getMessage(); + require($rep . $vues['erreur']); + } + } } \ No newline at end of file diff --git a/WEB/Model/AdminModel.php b/WEB/Model/AdminModel.php old mode 100644 new mode 100755 index 5c696a1a..185ef232 --- a/WEB/Model/AdminModel.php +++ b/WEB/Model/AdminModel.php @@ -84,6 +84,15 @@ async function submit(){ { $old = $this->enigme_gateway->findById($id)[0]; $ordre = $old->getOrdre(); + $nom = trim($nom); + $enonce = trim($enonce); + $aide = trim($aide); + $rappel = trim($rappel); + $exemple = trim($exemple); + $test = trim($test); + echo $test; + $solution = trim($solution); + $prompt = trim($prompt); $enigme = new Enigme($id,$nom, $enonce, $aide, $rappel, $exemple, $solution, $test, $ordre, 0, 0, $prompt); $this->enigme_gateway->update($enigme); $js = fopen("View/src/JS/$nom.js", "w"); diff --git a/WEB/Model/UserModel.php b/WEB/Model/UserModel.php index e600477c..061eba3e 100644 --- a/WEB/Model/UserModel.php +++ b/WEB/Model/UserModel.php @@ -52,11 +52,6 @@ class UserModel } echo '8'; $this->utilisateur_gateway->addToQueue($_SESSION['utilisateur'], $partie); - $userGroup = (string)$partie->getIdPartie(); - echo ''; } public function findUserGroup() : int { diff --git a/WEB/View/src/CSS/Login.css b/WEB/View/src/CSS/Login.css index 29365aa3..66960bda 100644 --- a/WEB/View/src/CSS/Login.css +++ b/WEB/View/src/CSS/Login.css @@ -24,6 +24,10 @@ body { background-color: #000; } +a{ + text-decoration: none !important; +} + .login-box { position: absolute; top: 50%; @@ -194,4 +198,4 @@ body { 100% { bottom: 100%; } -} +} \ No newline at end of file diff --git a/WEB/View/src/JS/a.js b/WEB/View/src/JS/a.js new file mode 100644 index 00000000..f6278d2e --- /dev/null +++ b/WEB/View/src/JS/a.js @@ -0,0 +1,13 @@ +//~ Function that test the user code + +async function submit(){ + var test = editor.getValue()+`\n +ba +R +`; + exec("print ('True')", "code"); + exec(test, "solution"); + result.innerHTML = "Test en cours..."; + await new Promise(r => setTimeout(r, 1500)); + check(); +} \ No newline at end of file diff --git a/WEB/View/src/pages/Admin/AddEnigmeSolo.php b/WEB/View/src/pages/Admin/AddEnigmeSolo.php index 0e66191d..f92bc157 100644 --- a/WEB/View/src/pages/Admin/AddEnigmeSolo.php +++ b/WEB/View/src/pages/Admin/AddEnigmeSolo.php @@ -64,14 +64,12 @@
-
-
+ + +
+ Login + Sign up +
+ + + + + \ No newline at end of file diff --git a/WEB/View/src/pages/LogSign/Login.php b/WEB/View/src/pages/LogSign/Login.php index 986eb78b..78a1cc98 100644 --- a/WEB/View/src/pages/LogSign/Login.php +++ b/WEB/View/src/pages/LogSign/Login.php @@ -31,10 +31,13 @@ -
+
+
+ Mots de passe oucliée ? +
+
+ +
+ Login + Sign up +
+
+ + + + \ No newline at end of file diff --git a/WEB/index.php b/WEB/index.php index a34a84ca..96337e60 100644 --- a/WEB/index.php +++ b/WEB/index.php @@ -2,7 +2,6 @@ require_once('./Config/Config.php'); require_once('./Config/Autoload.php'); Autoload::charger(); - $control = new FrontController(); //session_regenerate_id(true); diff --git a/WEB/node_modules/.package-lock.json b/WEB/node_modules/.package-lock.json new file mode 100644 index 00000000..48b1a4f1 --- /dev/null +++ b/WEB/node_modules/.package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "WEB", + "lockfileVersion": 2, + "requires": true, + "packages": {} +} diff --git a/WEB/package-lock.json b/WEB/package-lock.json new file mode 100644 index 00000000..48b1a4f1 --- /dev/null +++ b/WEB/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "WEB", + "lockfileVersion": 2, + "requires": true, + "packages": {} +} diff --git a/WEB/package.json b/WEB/package.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/WEB/package.json @@ -0,0 +1 @@ +{} diff --git a/WEB/server.js b/WEB/server.js new file mode 100644 index 00000000..894b2ee2 --- /dev/null +++ b/WEB/server.js @@ -0,0 +1,16 @@ +import { createServer } from "http"; +import { Server } from "socket.io"; + +const httpServer = createServer(); +const io = new Server(httpServer, { + // options +}); +io.on('connection', (socket) => { + console.log("connection de l'utilisateur à l'id ". socket.id); +}); +io.on('launchGame' , function () { + console.log('launch the game'); + location.reload(); +}); + +httpServer.listen(3000); \ No newline at end of file diff --git a/WEB/server.php b/WEB/server.php deleted file mode 100644 index ff87bb21..00000000 --- a/WEB/server.php +++ /dev/null @@ -1,27 +0,0 @@ -listen(3000); - -// Créer l'objet socket.io en lui passant le serveur -$io = require('/usr/local/lib/node_modules/socket.io')($server); - -// Quand un utilisateur se connecte -$io->on('connection', function ($socket) { - echo "connection de l'utilisateur à l'id " . $socket->id; -}); - -// Quand un utilisateur lance le jeu -$io->on('launchGame', function () { - echo 'launch the game'; - header('Location: index.php'); -}); - -// Exporter l'objet socket.io -putenv("io=$io"); - -echo 'iolisten'; -?> \ No newline at end of file diff --git a/package.json b/package.json index ff1e4d2e..76955c48 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "socket.io": "^4.5.4" }, + "type" : "module", "nodemonConfig": { "watch": [ "server.js"