goToHome(); break; case "goToHome": $this->goToHome(); break; case "goToPresentation": $this->goToPresentation(); break; case "goToSolo": $this->goToSolo(); break; case "goToEnigme": $this->goToEnigme(); break; case "goToTest": $this->goToTest(); break; case "goToNext": $this->goToNext(); break; case "goToGame": $this->goToGame(); break; case "enigmeEnded": $this->enigmeEnded(); break; case "goToQueue": $this->goToQueue(); break; case "queuing": $this->queuing(); break; case "logout": $this->logout(); break; case "launchGame": $this->launchGame(); break; case "saveCode": $this->saveCode(); break; case "saveCodeMulti": $this->saveCodeMulti(); break; case "saveCodeInCookie": $this->saveCodeInCookie(); break; default: $error = "Action non valide"; require($rep . $vues['erreur']); break; } } catch (PDOException $e) { $error = $e->getMessage(); require($rep . $vues['erreur']); } catch (Exception $e2) { $error = $e2->getMessage(); require($rep . $vues['erreur']); } } public function goToHome() { try { global $rep, $vues; require($rep . $vues['main']); } catch (Exception $e) { $error = $e->getMessage(); require($rep . $vues['erreur']); } } public function goToPresentation() { try { global $rep, $vues; require($rep . $vues['presentation']); } catch (Exception $e) { $error = $e->getMessage(); require($rep . $vues['erreur']); } } public function goToSolo() { try { global $rep, $vues; $model = new UserModel(); $utilisateur = $_SESSION['utilisateur']; $enigme = $model->getLastEnigmeEnded($utilisateur->getEmail()); header("Location: index.php?action=goToEnigme&ordre=" . $enigme->getOrdre()); } catch (Exception $e) { $error = $e->getMessage(); require($rep . $vues['erreur']); } } public function goToTest() { try { global $rep, $vues; require($rep . $vues['test']); } catch (Exception $e) { $error = $e->getMessage(); require($rep . $vues['erreur']); } } public function goToEnigme() { try { global $rep, $vues; $model = new UserModel(); $ordre = $_REQUEST['ordre']; $enigme = $model->getEnigmeByOrdre($ordre); if ($enigme->getNom() == "") { header("Location: index.php?action=goToHome"); } $utilisateur=$_SESSION['utilisateur']; if ($ordre != 1){ $lastEnigme = $model->getEnigmeByOrdre($ordre-1); if(! $model->checkEnigmeIsEnded($utilisateur->getEmail(), $lastEnigme->getIdEnigme())){ header("Location: index.php?action=goToEnigme&ordre=".($ordre-1)); } else{ $model->resoudreEnigmeSolo($utilisateur, $enigme->getIdEnigme()); $code = $model->getCode($utilisateur->getEmail(), $enigme->getIdEnigme()); require($rep . $vues['enigmePage']); } } elseif($model->checkEnigmeIsEnded($utilisateur->getEmail(), $enigme->getIdEnigme())){ $code = $model->getCode($utilisateur->getEmail(), $enigme->getIdEnigme()); require($rep . $vues['enigmePage']); } else { $model->resoudreEnigmeSolo($utilisateur, $enigme->getIdEnigme()); $code = $model->getCode($utilisateur->getEmail(), $enigme->getIdEnigme()); require($rep . $vues['enigmePage']); } } catch (Exception $e) { $error = $e->getMessage(); require($rep . $vues['erreur']); } } public function goToNext() { try { global $rep, $vues, $error; $nettoyage = new Nettoyage(); $num = $nettoyage->cleanInt($_REQUEST['num']); require($rep . $vues['next'] . $num . ".php"); } catch (Exception $e) { $error = "Erreur Inconnue"; require($rep . $vues['erreur']); } } public function enigmeEnded(){ try { global $rep, $vues; $model = new UserModel(); $ordre = $_REQUEST['ordre']; $enigme = $model->getEnigmeByOrdre($ordre); $utilisateur=$_SESSION['utilisateur']; $model->enigmeEnded($utilisateur->getEmail(),$enigme->getIdEnigme()); $_REQUEST['ordre'] = $ordre + 1; header("Location: index.php?action=goToEnigme&ordre=" . $_REQUEST['ordre']); } catch (Exception $e) { $error = "Erreur Inconnue"; require($rep . $vues['erreur']); } } public function goToQueue() { try { global $rep, $vues, $error; require($rep . $vues['queue']); } catch (Exception $e) { $error = $e->getMessage(); require($rep . $vues['erreur']); } } public function queuing(){ try { global $rep, $vues, $error; $model = new UserModel(); $utilisateur = $_SESSION['utilisateur']; $reponse = $model->addToQueue($utilisateur->getEmail()); $etat = $reponse[1]; $idPartie = $reponse[0]; $_SESSION['idPartie'] = $idPartie; $lesJoueurs = $model->getLesJoueurs($idPartie); if($etat == 1){ header("Location: index.php?action=goToGame&idPartie=" . $idPartie . "&index=1"); } else{ while ($etat == 0){ sleep(5); $etat = $model->getEtatPartie($idPartie); } header("Location: index.php?action=goToGame&idPartie=" . $idPartie . "&index=1"); } } catch (Exception $e) { $error = $e->getMessage(); require($rep . $vues['erreur']); } } public function goToGame(){ try { global $rep, $vues, $error; $model = new UserModel(); $utilisateur = $_SESSION['utilisateur']; $idPartie = $_GET['idPartie']; $index = $_GET['index']; $enigme = $model->getEnigmebyPartieIdAndIndex($idPartie, $index); $model->resoudreEnigmeMulti($utilisateur, $enigme->getIdEnigme(), $idPartie, $index); $code = $model->getCode($utilisateur->getEmail(), $enigme->getIdEnigme()); require($rep . $vues['partie']); } catch (Exception $e) { $error = $e->getMessage(); require($rep . $vues['erreur']); } } public function launchGame(){ try { global $rep, $vues, $error; $model = new UserModel(); $model->launchGame(); require($rep . $vues['partie']); } catch (Exception $e) { $error = $e->getMessage(); require($rep . $vues['erreur']); } } public function logout() { $_SESSION['role'] = 'visitor'; header('Location: index.php'); } public function saveCode(){ try { global $rep, $vues, $error; $model = new UserModel(); $code = $_POST['code']; $ordre = $_POST['ordre']; $enigme = $model->getEnigmeByOrdre($ordre); $utilisateur=$_SESSION['utilisateur']; $model->saveCode($utilisateur->getEmail(),$enigme->getIdEnigme(),$code); echo $code; } catch (Exception $e) { $error = $e->getMessage(); require($rep . $vues['erreur']); } } public function saveCodeMulti(){ try { global $rep, $vues, $error; $model = new UserModel(); $code = $_POST['code']; $index = $_POST['index']; $enigmeId = $_POST['enigmeId']; $utilisateur=$_SESSION['utilisateur']; $idPartie = $_SESSION['idPartie']; $model->saveCodeMulti($utilisateur->getEmail(),$enigmeId, $idPartie, $index,$code); echo $code; } catch (Exception $e) { $error = $e->getMessage(); echo $error; } } public function saveCodeInCookie(){ try { global $rep, $vues, $error; $model = new UserModel(); $code = $_POST['code']; $num = $_POST['num']; setcookie("test".$num, $code, time() + 3600*24*365); echo $code; } catch (Exception $e) { $error = $e->getMessage(); require($rep . $vues['erreur']); } } }