diff --git a/public/connexion.php b/public/connexion.php index 9b8e2ab00b4c0ef2ee20229e2fabe722ede4b318..75be731959f645837d254a2474af54350a01189d 100644 --- a/public/connexion.php +++ b/public/connexion.php @@ -109,10 +109,47 @@ if (isset($_POST['inscription'])&&isset($_POST['page'])&&isset($_POST['nom'])&&i $_SESSION['inscriptionHidden'] = false; $_SESSION['connexionHidden'] = true; } - header("Location:".$page.".php"); } + + +$ok_mdp = 1; +if (isset($_POST['page'])&&isset($_POST['old_mdp'])&&isset($_POST['mdp'])&&isset($_POST['cmdp'])) { + $ok_mdp=-2; + foreach ($users as $user) { + if ($user->getId() == $_SESSION["id_user"]) { + if (isset($_POST['old_mdp']) && isset($_POST['mdp']) && isset($_POST['cmdp']) ) { + if (password_verify($_POST['old_mdp'], $user->getMdp())) { + if($_POST['mdp'] == $_POST['cmdp']) { + $userRepository->updateUser_editer_password($_SESSION["id_user"], $_POST['mdp']); + $ok_mdp = 1; + $_SESSION['chgtMdpHidden'] = true; + $_SESSION['ok_mdp'] = $ok_mdp; + header("Location: espace_perso.php"); + } + else { + // Mdp et confirmation mdp sont différents + $ok_mdp = 0; + $_SESSION['ok_mdp'] = $ok_mdp; + $_SESSION['chgtMdpHidden'] = false; + } + } + else { + // L'ancien mdp est faux + $ok_mdp = -1; + $_SESSION['ok_mdp'] = $ok_mdp; + $_SESSION['chgtMdpHidden'] = false; + } + } + } + } + header("Location: espace_perso.php"); +} + + + + ?> diff --git a/public/espace_perso.php b/public/espace_perso.php index fac5ce62f445f30fbe5b9c94846d351db13f9a90..6bb68fb6447f6772f2973d1cadadce429079a344 100644 --- a/public/espace_perso.php +++ b/public/espace_perso.php @@ -58,6 +58,8 @@ foreach ($users as $user) { } } +urlHasArgument(); + ?> @@ -66,38 +68,11 @@ foreach ($users as $user) { <?php generateHeader('espace perso'); generateUserBanner(); - + fenetreModalChgtMdp(); // dans content.php + //Création modale de modification du mot de passe - echo ' - <div class="modal fade" id="modalChgtMDP" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> - <div class="modal-dialog"> - <div class="modal-content"> - <div class="modal-header"> - <h4 class="modal-title" id="modalInscriptionLabel">Connexion</h4> - <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> - </div>'; - if ($ok_mdp == 0) - echo '<p>Vos mots de passe doivent être identiques !</p>'; - if ($ok_mdp == -1) - echo '<p>Votre mot de passe actuel est erroné !</p>'; - if ($ok_mdp == 1) - echo '<p>Mot de passe changé !</p>'; - echo "<form class=\"form\" id=\"form_editer_mdp\" action=\"espace_perso.php\" method=\"POST\"> - <!-- champs caché pour savoir si on vient de info ou mdp --> - <input type=\"hidden\" name=\"form_mdp\" value=\"42\"/> - Ancien mot de passe: <br> - <input class=\"formulaire\" id=\"mdp0\" type=\"password\" name=\"old_mdp\" required><br> - Nouveau mot de passe :<br> - <input class=\"formulaire\" id=\"mdp1\" type=\"password\" name=\"mdp\" required><br> - Confirmation du nouveau mot de passe :<br> - <input class=\"formulaire\" id=\"mdp2\" type=\"password\" name=\"cmdp\" oninput=\"check_mdp(this)\" required><br> - - <input class=\"formulaire\" id=\"valider_mdp\" type=\"submit\" value=\"Envoyer\"> - </form> - </div> - </div> - </div>"; + if( $ok_mdp == -2 ) echo '<script>$(document).ready(function(){$("#modalChgtMDP").modal(\'hide\');});</script>'; else diff --git a/public/js/connexion.js b/public/js/connexion.js index f2f6f374c4172030a520e01e29f98655061f122f..2f5b510f3cc32a2a24c1f1e0b0a2405881acc836 100644 --- a/public/js/connexion.js +++ b/public/js/connexion.js @@ -17,23 +17,28 @@ function check_mdp(input) { */ function fenetreModalFermee(fenetreModal) { - console.log("JS: modalFermee appelée"); + //console.log("JS: modalFermee appelée"); var modal = ""; if (fenetreModal == 1) { modal = "inscription"; - console.log("modal = inscription"); + //console.log("modal = inscription"); } if (fenetreModal == 2) { modal = "connexion"; - console.log("modal = connexion"); + //console.log("modal = connexion"); } + document.getElementById('logoPhp').setAttribute('href', 'index.php?modal=' + modal); document.getElementById('indexPhp').setAttribute('href', 'index.php?modal=' + modal); document.getElementById('imageRandomPhp').setAttribute('href', 'image_alea.php?modal=' + modal); document.getElementById('bibliothequePhp').setAttribute('href', 'bibliotheque.php?modal=' + modal); + if (fenetreModal == 3) { + modal = "chgtMdp"; + document.getElementById('logoPhp').setAttribute('href', 'espace_perso.php?modal=' + modal); + } }; diff --git a/public/utils/content.php b/public/utils/content.php index 268b1e73b277a4989ce7d2fc051c9ff4bb8f255a..ffdff4e30c73986c0b6b77dc2befbc27e0839f1c 100644 --- a/public/utils/content.php +++ b/public/utils/content.php @@ -276,11 +276,79 @@ function urlHasArgument() { $_SESSION['ok_pseudo'] = 1; $_SESSION['ok_mdp'] = 1; } + else if ($modal == "chgtMdp") { + $_SESSION['chgtMdpHidden'] = true; + $_SESSION['ok_mdp'] = 1; + } +} + + +function fenetreModalChgtMdp() { + $chgtMdpHidden = isset($_SESSION['chgtMdpHidden']) ? $_SESSION['chgtMdpHidden'] : true; + $ok_mdp = isset($_SESSION['ok_mdp']) ? $_SESSION['ok_mdp'] : 1; + echo ' + <div class="modal fade" id="modalChgtMDP" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> + <div class="modal-dialog"> + <div class="modal-content"> + <div class="modal-header"> + <h4 class="modal-title" id="modalChgtMdpLabel">Changer mon mot de passe</h4> + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> + </div>'; + + if ($ok_mdp == -1 || $ok_mdp == 0) { + echo + '<div class="alert alert-danger"> + <span class="invalid_submit">'; + if ($ok_mdp == 0) + echo '<p>Vos mots de passe doivent être identiques !</p>'; + if ($ok_mdp == -1) + echo '<p>Votre mot de passe actuel est erroné !</p>'; + echo + '</span> + </div>'; + } + + echo + '<div class="modal-body"> + <form class="form" id="form_editer_mdp" class="form-inline my-2 my-lg-0 float-right" action="connexion.php" method="POST"> + <input class="form-control mr-sm-2" name="page" type="hidden" value="chgtMdp"> + <input class="form-control mr-sm-2" id="mdp0" placeholder="Ancien mot de passe" type="password" name="old_mdp" required><br> + <input class="form-control mr-sm-2" id="mdp1" placeholder="Nouveau mot de passe" type="password" name="mdp" required><br> + <input class="form-control mr-sm-2" id="mdp2" placeholder="Confirmation" type="password" name="cmdp" oninput=\"check_mdp(this)\" required><br> + <button class="btn btn-success" type="submit">Changer</button> + </form> + </div> + </div> + </div> + </div>'; + + // si $inscriptionHidden == false, on affiche la modal fenetre + if ($chgtMdpHidden == false) { + echo + '<script> + $(document).ready(function(){ + $("#modalChgtMDP").modal(\'show\') + $("#modalChgtMDP").on(\'hidden.bs.modal\', function () { + fenetreModalFermee(3); + }); + }); + </script>'; + } -} + // si $inscriptionHidden == true, on affiche la modal fenetre + if ($chgtMdpHidden == true) { + echo '<script> + $(document).ready(function(){ + $("#modalChgtMDP").modal(\'hide\'); + }); + </script>'; + } +} + + function generateFooter() {