Cookie for pagination done (some small issue though) and profile page finished, also I made the views code cleaner

listePrive
Emre KARTAL 2 years ago
parent 10af9c567b
commit 82c7a9fc22

@ -16,3 +16,5 @@ RewriteRule ^VueListePublic$ index.php?action=redirectionListePublic [L]
RewriteRule ^logout$ index.php?action=logout [L] RewriteRule ^logout$ index.php?action=logout [L]
RewriteRule ^MonProfil$ index.php?action=redirectionProfil [L] RewriteRule ^MonProfil$ index.php?action=redirectionProfil [L]
RewriteRule ^supprimerCompte$ index.php?action=supprimerCompte [L] RewriteRule ^supprimerCompte$ index.php?action=supprimerCompte [L]
RewriteRule ^previousPage$ index.php?action=pagePrécédente [L]
RewriteRule ^nextPage$ index.php?action=pageSuivante [L]

@ -56,6 +56,15 @@ class Validation {
return $str; return $str;
} }
static function cleanPseudo(string &$str) {
$str = preg_replace('/[^A-Za-z\-\^0-9]/', '', $str);
if($str == null || $str == '')
{
return null;
}
return $str;
}
static function cleanMail(string &$str) { static function cleanMail(string &$str) {
$str = preg_replace('/[^A-Za-z\-\^0-9\.\@]/', '', $str); $str = preg_replace('/[^A-Za-z\-\^0-9\.\@]/', '', $str);
if($str == null || $str == '') if($str == null || $str == '')
@ -65,16 +74,16 @@ class Validation {
return $str; return $str;
} }
static function val_form_add(string &$nom,string &$description,&$dVueEreur) { static function val_form_add(string &$nom,string &$description,&$dVueErreur) {
$nom = Validation::cleanText($nom); $nom = Validation::cleanText($nom);
if ($nom == NULL) { if ($nom == NULL) {
$dVueEreur['nom'] = "Veuillez entrer un nom*"; $dVueErreur['nom'] = "Veuillez entrer un nom*";
} }
$description = Validation::cleanText($description); $description = Validation::cleanText($description);
if ($description == NULL) { if ($description == NULL) {
$dVueEreur['description'] = "Veuillez entrer une description*"; $dVueErreur['description'] = "Veuillez entrer une description*";
} }
if(count($dVueEreur)>0){ if(count($dVueErreur)>0){
throw new Exception("Problème lors de l'ajout"); throw new Exception("Problème lors de l'ajout");
} }

@ -32,23 +32,27 @@ class CtrlUtilisateur {
case "supprimerCompte": case "supprimerCompte":
$this->supprimerCompte($dVueErreur); $this->supprimerCompte($dVueErreur);
break; break;
case "modifMdp":
$this->changerMotDePasse($dVueErreur);
break;
default: default:
$dVueErreur[] = "Erreur d'appel php"; $dVueErreur[] = "Erreur d'appel php";
require ($rep.$vues['home']); require ($rep.$vues['erreur']);
break; break;
} }
} catch (PDOException $e) } catch (PDOException $e)
{ {
//si erreur BD, pas le cas ici //si erreur BD, pas le cas ici
$dVueEreur[] = "Erreur BD!!! "; $dVueErreur[] = "Erreur BD!!! ";
require ($rep.$vues['erreur']); require ($rep.$vues['erreur']);
} }
catch (Exception $e2) catch (Exception $e2)
{ {
$dVueEreur[] = "Erreur inattendue!!! "; $dVueErreur[] = "Erreur inattendue!!! ";
require ($rep.$vues['erreur']); require ($rep.$vues['erreur']);
} }
@ -76,16 +80,32 @@ class CtrlUtilisateur {
global $rep,$vues; global $rep,$vues;
$action=NULL; $action=NULL;
$user=MdlUtilisateur::isConnected(); $user=MdlUtilisateur::isConnected();
$nombreListe=MdlUtilisateur::recupererNombreDeListe();
require ($rep.$vues['profil']); require ($rep.$vues['profil']);
} }
function supprimerCompte(array $dVueErreur){ function supprimerCompte(array $dVueErreur){
global $rep,$vues; global $rep,$vues;
$action=NULL; $action=NULL;
$user=MdlUtilisateur::suppressionUtilisateur(); MdlUtilisateur::suppressionUtilisateur();
require ($rep.$vues['login']); require ($rep.$vues['login']);
} }
function changerMotDePasse(array $dVueErreur){
global $rep,$vues;
try{
MdlUtilisateur::changerMotDePasse();
$action=NULL;
require ($rep.$vues['login']);
}
catch(Exception $e)
{
$dVueErreur[] = $e->getMessage();
require ($rep.$vues['erreur']);
}
}
}//fin class }//fin class
?> ?>

@ -50,7 +50,7 @@ class CtrlVisiteur {
break; break;
case "AjouterTache": case "AjouterTache":
$this->AjouterTache(); $this->AjouterTache($dVueErreur);
break; break;
case "AjouterListePublic": case "AjouterListePublic":
@ -58,11 +58,19 @@ class CtrlVisiteur {
break; break;
case "ModifierListe": case "ModifierListe":
$this->ModifierListe(); $this->ModifierListe($dVueErreur);
break;
case "pagePrécédente":
$this->listePrécédente($dVueErreur);
break;
case "pageSuivante":
$this->listeSuivante($dVueErreur);
break; break;
case "check": case "check":
$this->check(); $this->check($dVueErreur);
break; break;
//mauvaise action //mauvaise action
@ -145,31 +153,18 @@ class CtrlVisiteur {
} }
function SupprimerTache(array $dVueErreur){ function SupprimerTache(array $dVueErreur){
global $rep,$vues;
$tache = MdlVisiteur::SupprimerTache(); $tache = MdlVisiteur::SupprimerTache();
$listes = MdlVisiteur::RecupererListePublic(); $this->ConsulterListePublic($dVueErreur);
$taches = MdlVisiteur::RecupererTache();
$action=NULL;
require ($rep.$vues['listPublic']);
} }
function SupprimerListe(array $dVueErreur){ function SupprimerListe(array $dVueErreur){
global $rep,$vues;
$liste = MdlVisiteur::SupprimerListe(); $liste = MdlVisiteur::SupprimerListe();
$listes = MdlVisiteur::RecupererListePublic(); $this->ConsulterListePublic($dVueErreur);
$taches = MdlVisiteur::RecupererTache();
$action=NULL;
require ($rep.$vues['listPublic']);
} }
public function AjouterTache(array $dVueErreur){
public function AjouterTache(){
global $rep,$vues;
$tache = MdlVisiteur::AjouterTache(); $tache = MdlVisiteur::AjouterTache();
$listes = MdlVisiteur::RecupererListePublic(); $this->ConsulterListePublic($dVueErreur);
$taches = MdlVisiteur::RecupererTache();
$action=NULL;
require ($rep.$vues['listPublic']);
} }
public function AjouterListePublic(array $dVueErreur){ public function AjouterListePublic(array $dVueErreur){
@ -187,27 +182,32 @@ class CtrlVisiteur {
$action=NULL; $action=NULL;
require ($rep.$vues['listPublic']); require ($rep.$vues['listPublic']);
} }
} }
public function ModifierListe(){ public function ModifierListe(array $dVueErreur){
global $rep,$vues;
$tache = MdlVisiteur::ModifierListe(); $tache = MdlVisiteur::ModifierListe();
$listes = MdlVisiteur::RecupererListePublic(); $this->ConsulterListePublic($dVueErreur);
$taches = MdlVisiteur::RecupererTache();
$action=NULL;
require ($rep.$vues['listPublic']);
} }
public function check() public function check(array $dVueErreur)
{ {
global $rep,$vues;
$tache = MdlVisiteur::check(); $tache = MdlVisiteur::check();
$listes = MdlVisiteur::RecupererListePublic(); $this->ConsulterListePublic($dVueErreur);
$taches = MdlVisiteur::RecupererTache(); }
$action=NULL;
require ($rep.$vues['listPublic']); public function listePrécédente(array $dVueErreur){
if($_COOKIE["page"]>1){
$_COOKIE["page"]=$_COOKIE["page"]-1;
}
$this->ConsulterListePublic($dVueErreur);
} }
public function listeSuivante(array $dVueErreur){
$_COOKIE["page"]=$_COOKIE["page"]+1;
$this->ConsulterListePublic($dVueErreur);
}
}//fin class }//fin class
?> ?>

@ -4,11 +4,12 @@ class FrontControleur {
function __construct(){ function __construct(){
global $rep,$vues; global $rep,$vues;
session_start(); session_start();
setcookie('page', 1, time() + 24*3600);
try { try {
$string_actor=' '; $string_actor=' ';
$listeActions=array( $listeActions=array(
'Utilisateur' => array('logout','redirectionProfil','supprimerCompte'), 'Utilisateur' => array('logout','redirectionProfil','supprimerCompte','modifMdp'),
'Admin' => array() 'Admin' => array()
); );

@ -30,25 +30,54 @@ class MdlUtilisateur
$id=Validation::cleanInt($_SESSION['id']); $id=Validation::cleanInt($_SESSION['id']);
$nom=Validation::cleanString($_SESSION['nom']); $nom=Validation::cleanString($_SESSION['nom']);
$prenom=Validation::cleanString($_SESSION['prenom']); $prenom=Validation::cleanString($_SESSION['prenom']);
$pseudo=Validation::cleanString($_SESSION['pseudo']); $pseudo=Validation::cleanPseudo($_SESSION['pseudo']);
$email=Validation::cleanMail($_SESSION['email']); $email=Validation::cleanMail($_SESSION['email']);
return new Utilisateur($id,$nom,$prenom,$pseudo,$email); return new Utilisateur($id,$nom,$prenom,$pseudo,$email);
} }
else return null; else return null;
} }
public static function déconnexion(){ public static function déconnexion(){
session_unset(); session_unset();
session_destroy(); session_destroy();
$_SESSION = array(); $_SESSION = array();
} }
public static function recupererNombreDeListe(){
$listeGtw = new ListeGateway();
$id = Validation::cleanInt($_SESSION['id']);
return $listeGtw->CountListe(intval($id));
}
public function suppressionUtilisateur(){ public static function suppressionUtilisateur(){
$userGtw = new UtilisateurGateway(); $userGtw = new UtilisateurGateway();
$id=Validation::cleanInt($_SESSION['id']); $id=Validation::cleanInt($_SESSION['id']);
$userGtw->SupprimerUtilisateur(intval($id)); $userGtw->SupprimerUtilisateur(intval($id));
MdlUtilisateur::déconnexion(); MdlUtilisateur::déconnexion();
} }
public static function changerMotDePasse(){
$userGtw = new UtilisateurGateway();
$id=Validation::cleanInt($_SESSION['id']);
$mail=Validation::cleanMail($_SESSION['email']);
$mdp=$_POST['passwordCurrent'];
$newMdp=$_POST['newPassword'];
$verif_pass=$userGtw->getCredentials($mail);
if(password_verify($mdp,$verif_pass)){
if($newMdp == $_POST['confirmNewPassword']){
if (!preg_match('/^.{5,}$/', $mdp)) {
throw new Exception("Mot de passe trop faible. Veuillez recommencer !");
}
else {
$userGtw->modifMdp($id, password_hash($newMdp, PASSWORD_DEFAULT));
}
}
else throw new Exception("Erreur lors de la confirmation du mot de passe.");
}
else throw new Exception("Mot de passe Incorrect");
}
} }

@ -18,7 +18,10 @@ class MdlVisiteur
public static function RecupererListePublic(){ public static function RecupererListePublic(){
$userGtw = new ListeGateway(); $userGtw = new ListeGateway();
return $userGtw->getListePublic(0,10); if(isset($_COOKIE["page"]))
return $userGtw->getListePublic(($_COOKIE["page"]-1)*10,10);
else
return $userGtw->getListePublic(1,10);
} }
public static function RecupererTache(){ public static function RecupererTache(){
@ -66,11 +69,11 @@ class MdlVisiteur
} }
public function AjouterListePublic(&$dVueErreur){ public function AjouterListePublic(&$dVueErreur){
$taskGtw = new ListeGateway(); $listGtw = new ListeGateway();
$nom=$_POST['nom-ajout-liste']; $nom=$_POST['nom-ajout-liste'];
$description=$_POST['description-ajout-liste']; $description=$_POST['description-ajout-liste'];
Validation::val_form_add($nom,$description,$dVueErreur); Validation::val_form_add($nom,$description,$dVueErreur);
$taskGtw->Ajouter($nom, $description,1, true); $listGtw->Ajouter($nom, $description,1, true);
} }
public function check(){ public function check(){

@ -10,11 +10,11 @@ class ListeGateway{
public function Ajouter(string $nom, string $description, bool $estPublic, string $createur){ public function Ajouter(string $nom, string $description, bool $estPublic, string $createur){
$query='INSERT INTO ToDoList_Liste(nom, description, dateCreation,estPublic, idUtilisateur) VALUES(:nom,:description,CURRENT_DATE, :estPublic, :createur);'; $query='INSERT INTO ToDoList_Liste(nom, description, dateCreation,estPublic, idUtilisateur) VALUES(:nom,:description,CURRENT_DATE, :estPublic, :createur);';
$this->con->executeQuery($query, array( $this->con->executeQuery($query, array(
'nom' => array($nom, PDO::PARAM_STR), 'nom' => array($nom, PDO::PARAM_STR),
'description' => array($description, PDO::PARAM_STR), 'description' => array($description, PDO::PARAM_STR),
'estPublic' => array($estPublic, PDO::PARAM_INT), 'estPublic' => array($estPublic, PDO::PARAM_INT),
'createur' => array($createur, PDO::PARAM_STR), 'createur' => array($createur, PDO::PARAM_STR),
)); ));
} }
public function Editer(string $id, string $nom, string $description){ public function Editer(string $id, string $nom, string $description){
@ -26,12 +26,15 @@ class ListeGateway{
); );
} }
public function CountListe($id){
$query="SELECT count(*) as nombreListe FROM ToDoList_Liste WHERE idUtilisateur=:id";
$this->con->executeQuery($query, array('id' => array($id, PDO::PARAM_INT)));
return $this->con->getResults()[0]['nombreListe'];
}
public function EditerNom(string $id, string $nom){ public function EditerNom(string $id, string $nom){
$query='UPDATE ToDoList_Liste SET nom=:nom WHERE id=:id;'; $query='UPDATE ToDoList_Liste SET nom=:nom WHERE id=:id;';
// erreur iciiiiiiii
$this->con->executeQuery($query, array('nom' => array($nom, PDO::PARAM_STR),'id' => array($id, PDO::PARAM_INT))); $this->con->executeQuery($query, array('nom' => array($nom, PDO::PARAM_STR),'id' => array($id, PDO::PARAM_INT)));
} }
public function EditerDescription(string $id, string $description){ public function EditerDescription(string $id, string $description){

@ -59,6 +59,13 @@ class UtilisateurGateway{
} }
} }
public function modifMdp($id, $mdp){
$query = "UPDATE ToDoList_Utilisateur SET motDePasse=:mdp WHERE id=:id";
$this->con->executeQuery($query, array(
'mdp' => array($mdp, PDO::PARAM_STR),
'id' => array($id, PDO::PARAM_INT)));
}
public function RechercheUtilisateurViaEmail(string $mail){ public function RechercheUtilisateurViaEmail(string $mail){
$query = 'SELECT * FROM ToDoList_Utilisateur WHERE email=:mail'; $query = 'SELECT * FROM ToDoList_Utilisateur WHERE email=:mail';
$this->con->executeQuery($query, array('mail' => array($mail, PDO::PARAM_STR))); $this->con->executeQuery($query, array('mail' => array($mail, PDO::PARAM_STR)));

@ -1,7 +1,7 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<link rel="shortcut icon" href="./vue/Images/c.gif" type="../Images/gif"> <link rel="shortcut icon" href="./vue/Images/gif.gif" type="../Images/gif">
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>Home Page</title> <title>Home Page</title>
@ -37,7 +37,7 @@
</button> </button>
</div> </div>
<div class="modal-body row"> <div class="modal-body row">
<form class="col" method="POST" action="index.php?action=AjouterListePublic"> <form class="col" method="POST">
<div class="form-group"> <div class="form-group">
<?php <?php
if(isset($dVueErreur['nom'])){?> if(isset($dVueErreur['nom'])){?>
@ -113,14 +113,14 @@
</button> </button>
</div> </div>
<div class="modal-body row"> <div class="modal-body row">
<form class="col" method="POST" action="index.php?action=AjouterTache&idListe=<?= $liste->getId() ?>"> <form class="col" method="POST" >
<div class="form-group"> <div class="form-group">
<label for="nom" class="form-control-label">Nom</label> <label for="nom" class="form-control-label">Nom</label>
<input type="text" class="form-control" name ="nom-ajout" id="nom" placeholder="Entrez un nom"> <input type="text" class="form-control" name ="nom-ajout" id="nom" placeholder="Entrez un nom" required autofocus>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="description" class="form-control-label">Description</label> <label for="description" class="form-control-label">Description</label>
<input type="text" class="form-control" name="description-ajout" id="description" placeholder="Entrez une description"> <input type="text" class="form-control" name="description-ajout" id="description" placeholder="Entrez une description" required autofocus>
</div> </div>
<button type="submit" class="btn btn-primary pull-right">Ajouter</button> <button type="submit" class="btn btn-primary pull-right">Ajouter</button>
<input type="hidden" name="action" value="AjouterTache"> <input type="hidden" name="action" value="AjouterTache">
@ -145,7 +145,7 @@
</button> </button>
</div> </div>
<div class="modal-body row"> <div class="modal-body row">
<form class="col" method="POST" action="index.php?action=ModifierListe&idListe=<?= $liste->getId() ?>"> <form class="col" method="POST">
<div class="form-group"> <div class="form-group">
<label for="nom" class="form-control-label">Nouveau nom</label> <label for="nom" class="form-control-label">Nouveau nom</label>
<input type="text" class="form-control" name ="nom-modif-liste" id="nom" placeholder="<?= $liste->getNom() ?>"> <input type="text" class="form-control" name ="nom-modif-liste" id="nom" placeholder="<?= $liste->getNom() ?>">
@ -219,12 +219,15 @@
?> ?>
<nav aria-label="Page navigation example"> <nav aria-label="Page navigation example">
<center>
<p>Page n°<?php echo $_COOKIE['page'] ?></p>
</center>
<ul class="pagination justify-content-center"> <ul class="pagination justify-content-center">
<li class="page-item"> <li class="page-item">
<a class="page-link" href="#">Previous</a> <a class="page-link" href="previousPage">Previous</a>
</li> </li>
<li class="page-item"> <li class="page-item">
<a class="page-link" href="#">Next</a> <a class="page-link" href="nextPage">Next</a>
</li> </li>
</ul> </ul>
</nav> </nav>

@ -3,9 +3,9 @@
<html> <html>
<head> <head>
<title>Page d'inscription</title> <title>Page d'inscription</title>
<link rel="shortcut icon" href="./vue/Images/gif.gif" type="../Images/gif">
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<link rel="shortcut icon" href="./Vue/Images/gif.gif" type="../Images/gif">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- CSS only --> <!-- CSS only -->
<link rel="stylesheet" href="./vue/css/style.css"> <link rel="stylesheet" href="./vue/css/style.css">
@ -34,7 +34,7 @@
<center><p class="ErreurText"> <?php echo $dVueErreur['nom']?></p></center><?php <center><p class="ErreurText"> <?php echo $dVueErreur['nom']?></p></center><?php
} }
?> ?>
<div class="form-outline"> <div>
<input type="text" name="nom-Form" placeholder="Nom" required autofocus> <input type="text" name="nom-Form" placeholder="Nom" required autofocus>
</div> </div>
</div> </div>
@ -44,7 +44,7 @@
<center><p class="ErreurText"> <?php echo $dVueErreur['prenom']?></p></center><?php <center><p class="ErreurText"> <?php echo $dVueErreur['prenom']?></p></center><?php
} }
?> ?>
<div class="form-outline"> <div>
<input type="text" name="prenom-Form" placeholder="Prenom" required autofocus> <input type="text" name="prenom-Form" placeholder="Prenom" required autofocus>
</div> </div>
</div> </div>

@ -55,20 +55,50 @@
<p class="mb-0">Nombre de liste</p> <p class="mb-0">Nombre de liste</p>
</div> </div>
<div class="col-sm-14 text-center"> <div class="col-sm-14 text-center">
<p class="text-muted mb-0">15 listes</p> <p class="text-muted mb-0"><?php echo $nombreListe ?></p>
</div> </div>
</div> </div>
</div> </div>
<div class="text-center"> <div class="text-center">
<br> <br>
<a type="button" class="btn btn-outline-info waves-effect" href="#"> <a type="button" class="btn btn-outline-info waves-effect" href="#" data-toggle="modal" data-target="#modalModifier">
Changer mot de passe Changer mot de passe
</a> </a>
<a type="button" class="btn btn-outline-danger waves-effect" href="#" data-toggle="modal" data-target="#exampleModal"> <a type="button" class="btn btn-outline-danger waves-effect" href="#" data-toggle="modal" data-target="#modalSupp">
Supprimer le compte Supprimer le compte
</a> </a>
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> <!-- Modal Modifier -->
<div class="modal fade" id="modalModifier" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Modification du mot de passe</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form class="col" method="POST">
<div class="form-group">
<input type="password" class="form-control" name ="passwordCurrent" placeholder="Mot de passe actuel" required autofocus>
</div>
<div class="form-group">
<input type="password" class="form-control" name="newPassword" id="description" placeholder="Nouveau mot de passe" required autofocus>
</div>
<div class="form-group">
<input type="password" class="form-control" name="confirmNewPassword" id="description" placeholder="Confirmer le mot de passe" required autofocus>
</div>
<button type="submit" class="btn btn-primary pull-right">Terminer</button>
<input type="hidden" name="action" value="modifMdp">
</form>
</div>
</div>
</div>
</div>
<!-- Modal Supprimer -->
<div class="modal fade" id="modalSupp" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document"> <div class="modal-dialog" role="document">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">

Loading…
Cancel
Save