diff --git a/app/controller/ConnexionController.php b/app/controller/ConnexionController.php index 8de58464d8ccf7a3d9ccfe09f4cd1cde9855be22..8d9078993a49d784b9ac595425e5464f5c33b772 100644 --- a/app/controller/ConnexionController.php +++ b/app/controller/ConnexionController.php @@ -5,11 +5,18 @@ class ConnexionController extends Controller { // classe de contrôleur pour la $this->view->display(); // on affiche la page avec le message de réussites } + public function displayDisconnect() { // la fonction d'affichage de réussite + session_start(); + unset($_SESSION['connected']); + unset($_SESSION['user']); + $this->view->display(); // on affiche la page avec le message de réussites + } + public function displayForm() { // la fonction d'affichage de formulaire $this->view->display(); } - public function verify() { // vérifie que les identifiants sont valides par rapport à la BDD + public function verify() { // vérifie que les identifiants sont valides par rapport à la BDD et réalise la connexion // méthode avec un stockage de mdp hashé selon la fonction password_hash() if(!isset($_POST['login']) || !isset($_POST['password'])) { // si l'une des données manque, erreur //appeler une fonction d'erreur @@ -28,6 +35,9 @@ class ConnexionController extends Controller { // classe de contrôleur pour la } else { // l'utilisateur existe if(password_verify($userpassword, $bddpassword)) { // la connexion a réussi + session_start(); // on démarre la session pour pouvoir définir les variables adéquates + $_SESSION['connected'] = true; + $_SESSION['user'] = Connexion::getUser(self::slugify($pseudo)); header('Location:valid'); // on redirige vers la page OK } else { // sinon, c'est que le mot de passe est faux diff --git a/app/kernel/Router.php b/app/kernel/Router.php index 7f8698becd816a8f390111802edb41746eb00bc8..821d272d624f41451fb3ced499df452074c542bc 100644 --- a/app/kernel/Router.php +++ b/app/kernel/Router.php @@ -66,6 +66,10 @@ class Router { // classe PHP permettant l'analyse de l'URL des requêtes $result["controller"] = "Connexion"; $result["action"] = "displayForm"; // "displayForm" pour afficher le formulaire } + else if($parts[0] == "deconnexion" && count($parts) == 1) { // page de déconnexion + $result["controller"] = "Connexion"; + $result["action"] = "displayDisconnect"; // "displayForm" pour afficher le formulaire + } else if($parts[0] == "connexion" && count($parts) == 2 && $parts[1] == "valid") { // connexion réussie $result["controller"] = "Connexion"; $result["action"] = "displayValid"; // "displayValid" pour afficher la page avec le message de réussite diff --git a/app/model/Connexion.php b/app/model/Connexion.php index b84adcfad2acd7678ee470044ae167175a4760f2..6bb7a937a51e2495e851546a73425cbcf5ddcc13 100644 --- a/app/model/Connexion.php +++ b/app/model/Connexion.php @@ -1,6 +1,7 @@ <?php class Connexion extends Model { // classe de modèle pour la connexion au site + public $slug, $pseudo, $nom, $prenom, $email; public static function getPassword($pseudo) { // méthode permettant de récupérer le password hashé d'un membre dans la BDD // renvoie le mot de passe si le membre existe @@ -19,6 +20,16 @@ class Connexion extends Model { // classe de modèle pour la connexion au site return $return; } + public static function getUser($slug) { // méthode permettant de récupérer les données d'un utilisateur dans la BDD + $db = Database::getInstance(); // on récupère la connexion à la BDD + $sql = "SELECT slug, pseudo, nom, prenom, email FROM R_joueur WHERE slug = :slug_joueur"; + $req = $db->prepare($sql); // on prépare la requête + $req->setFetchMode(PDO::FETCH_CLASS, "Connexion"); + $req->execute(array(":slug_joueur" => $slug)); // on remplace les variables dans la requête + + return $req->fetch(); + } + } diff --git a/app/view/Connexion/displayDisconnect.html b/app/view/Connexion/displayDisconnect.html new file mode 100644 index 0000000000000000000000000000000000000000..6d91f70f8db5f606bf90031c1515b32215d4270e --- /dev/null +++ b/app/view/Connexion/displayDisconnect.html @@ -0,0 +1,11 @@ +<?php + $page_title = "Connexion réussie"; + include(ROOT."/app/view/Includes/header.include.html"); +?> + + <article class="msg-valide"><h2>Vous êtes à présent déconnecté !</h2></article> + <article> + <p>Revenez nous voir bientôt. :)</p> + </article> + +<?php include(ROOT."/app/view/Includes/footer.include.html"); ?> diff --git a/app/view/Connexion/displayForm.html b/app/view/Connexion/displayForm.html index 064cd0a7e5eb6a8e9805ca28fc827940019ff590..6e0e4596c4a5b8c7d9d4f81f7beb6ecae7fb2036 100644 --- a/app/view/Connexion/displayForm.html +++ b/app/view/Connexion/displayForm.html @@ -1,5 +1,10 @@ <?php session_start(); + + if(isset($_SESSION['connected']) && $_SESSION['connected'] == true) { + header('Location:'.BASE_URL); + } + $page_title = "Formulaire de connexion"; include(ROOT."/app/view/Includes/header.include.html"); ?> diff --git a/app/view/Includes/header.include.html b/app/view/Includes/header.include.html index 2fc4832b5bffd379c3e62ce6405ec94a26681a11..ecf38f00d622c2b5775d9054ec0042b4d5df12f7 100644 --- a/app/view/Includes/header.include.html +++ b/app/view/Includes/header.include.html @@ -1,3 +1,8 @@ +<?php +if(!isset($_SESSION)) { // si + session_start(); +} +?> <!DOCTYPE html> <html lang="fr"> <head> @@ -30,10 +35,23 @@ <div class="col-4 space col-m-1"> </div> + <?php + if(isset($_SESSION['connected']) && $_SESSION['connected'] == true) { + ?> + <div class="connexion col-3 col-m-6"> + <?php echo $_SESSION['user']->prenom.' '.$_SESSION['user']->nom; ?> + </div> + <?php + } + else { + ?> <div class="connexion col-3 col-m-6"> <div class="signin"><a class="connexion-link" href="<?php echo BASE_URL; ?>/inscription">Inscription</a></div> <div class="login"><a class="connexion-link" href="<?php echo BASE_URL; ?>/connexion">Connexion</a></div> </div> + <?php + } + ?> </header> diff --git a/app/view/Index/display.html b/app/view/Index/display.html index 853e33dcc661a9c542fb12a8ac89216a06e7a732..99dc981b272fc5fc32c2bf013e6c861ae8d23e68 100644 --- a/app/view/Index/display.html +++ b/app/view/Index/display.html @@ -6,13 +6,12 @@ <article> <h1>Exemple de page d'accueil</h1> - <h3 style="margin-bottom:-2px;"><a href="listejeux">Liste de jeux</a></h3> + <h3 style="margin-bottom:-2px;">Liste de jeux</h3> <ul> <?php foreach($this->list as $jeu) : ?> <li><a href="jeu/<?php echo $jeu->slug;?>"><?php echo $jeu->nom;?></a></li> <?php endforeach;?> </ul> - <h3 style="margin-bottom:-2px;"><a href="addjeu">Demander à ajouter un jeu</a></h3> <h3 style="margin-bottom:-4px;">Liste de profils</h3> <ul> @@ -27,6 +26,8 @@ <li><a href="classement/jeu/random">Classement pour un jeu spécifique</a></li> </ul> + <a href="deconnexion">Se déconnecter</a> + </article> <?php include(ROOT."/app/view/Includes/footer.include.html"); ?> diff --git a/app/view/Jeu/displayFormAdd.html b/app/view/Jeu/displayFormAdd.html index 2f44e772c4a08b8898651c27034e9a72f304cede..195b72b65701b9737ce4fad7cc45282a8bdf8759 100644 --- a/app/view/Jeu/displayFormAdd.html +++ b/app/view/Jeu/displayFormAdd.html @@ -1,5 +1,10 @@ <?php session_start(); + + if(!isset($_SESSION['connected']) || $_SESSION['connected'] != true) { + header('Location:'.BASE_URL); + } + $page_title = "Formulaire de demande d'ajout de jeu"; include(ROOT."/app/view/Includes/header.include.html"); ?> diff --git a/app/view/Jeu/displayListe.html b/app/view/Jeu/displayListe.html index ca76992d7e76632c09691796f4f74b0c9723e811..9734082c3eb403cca2dd80dfadf488e74af392e5 100644 --- a/app/view/Jeu/displayListe.html +++ b/app/view/Jeu/displayListe.html @@ -29,6 +29,8 @@ ?> <?php + + if(isset($_SESSION['connected']) && $_SESSION['connected'] == true) { if($cpt == 1) { echo '<div class="row game-row">'; } @@ -42,6 +44,9 @@ </a> </div> </div> + <?php + } + ?> </div> diff --git a/app/view/Partie/displayForm.html b/app/view/Partie/displayForm.html index cb5d00e9bd4d7dc58a6cb5506a1129ca24a22437..0121eea886f083e04c82037f93f1a10f305dae04 100644 --- a/app/view/Partie/displayForm.html +++ b/app/view/Partie/displayForm.html @@ -1,4 +1,10 @@ <?php + session_start(); + + if(!isset($_SESSION['connected']) || $_SESSION['connected'] != true) { + header('Location:'.BASE_URL); + } + $page_title = "Formulaire d'ajout de partie"; include(ROOT."/app/view/Includes/header.include.html"); ?> diff --git a/app/view/Profil/display.html b/app/view/Profil/display.html index 1566803188f82b7238634eb26d98109a97e2d461..fcc343c86d7ed07e049d2c04cdae3936346f7b7a 100644 --- a/app/view/Profil/display.html +++ b/app/view/Profil/display.html @@ -11,6 +11,10 @@ <div class="row"> <ul class="col-4 pref"> <li><?php echo $this->profil->prenom.' '.$this->profil->nom; ?></li> + + <?php + if(isset($_SESSION['connected']) && $_SESSION['connected'] == true) { + ?> <li>24 ans</li> <li>ENSIIE</li> <li>1A+++</li> @@ -19,11 +23,15 @@ <ul class="col-4 pref"> <li><?php echo $this->profil->description; ?></li> </ul> + <?php } ?> <!--<ul class="col-4 pref"> <li>Aime le basket</li> <li>N'aime pas le JQuery</li> </ul>--> </div> + <?php + if(isset($_SESSION['connected']) && $_SESSION['connected'] == true) { + ?> <div class="col-6"> <h3 class="stat-title">Jeux préférés</h3> <table class="jeux-preferes"> @@ -31,6 +39,7 @@ <tr><td><img src="<?php echo BASE_URL; ?>/images/Cosmic_Encounter_(FFG).jpg" alt="logo jeu <>" /></td><td>Rencontres Cosmiques</td></tr> </table> </div> + <?php } ?> <div class="col-6"> <h3 class="stat-title">Meilleurs classements</h3> @@ -48,6 +57,9 @@ <div class="row"> + <?php + if(isset($_SESSION['connected']) && $_SESSION['connected'] == true) { + ?> <div class="col-6"> <h3 class="stat-title">Jeux préférés</h3> <table class="jeux-preferes"> @@ -55,6 +67,7 @@ <tr><td><img src="<?php echo BASE_URL; ?>/images/Cosmic_Encounter_(FFG).jpg" alt="logo jeu <>" /></td><td>Rencontres Cosmiques</td></tr> </table> </div> + <?php } ?> <div class="col-6"> <h3 class="stat-title">Pire classements</h3> <table class="jeux-preferes"> diff --git a/app/view/Register/displayForm.html b/app/view/Register/displayForm.html index 4b9842c6d89cbea06d0b8b4cbd86b87270fcebb5..c4e7cfba6495c3ef46f09153c0c2a9272698983f 100644 --- a/app/view/Register/displayForm.html +++ b/app/view/Register/displayForm.html @@ -1,6 +1,10 @@ <?php session_start(); + if(isset($_SESSION['connected']) && $_SESSION['connected'] == true) { + header('Location:'.BASE_URL); + } + $page_title = "Formulaire d'inscription"; include(ROOT."/app/view/Includes/header.include.html"); ?> diff --git a/index.php b/index.php deleted file mode 100644 index 865c8ff0550804b428d6ffe27ac41fee44ad9c47..0000000000000000000000000000000000000000 --- a/index.php +++ /dev/null @@ -1,7 +0,0 @@ -<?php -/** - * Created by PhpStorm. - * User: phoenix - * Date: 29/03/16 - * Time: 16:34 - */ \ No newline at end of file