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 ^MonProfil$ index.php?action=redirectionProfil [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;
}
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) {
$str = preg_replace('/[^A-Za-z\-\^0-9\.\@]/', '', $str);
if($str == null || $str == '')
@ -65,16 +74,16 @@ class Validation {
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);
if ($nom == NULL) {
$dVueEreur['nom'] = "Veuillez entrer un nom*";
$dVueErreur['nom'] = "Veuillez entrer un nom*";
}
$description = Validation::cleanText($description);
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");
}

@ -33,22 +33,26 @@ class CtrlUtilisateur {
$this->supprimerCompte($dVueErreur);
break;
case "modifMdp":
$this->changerMotDePasse($dVueErreur);
break;
default:
$dVueErreur[] = "Erreur d'appel php";
require ($rep.$vues['home']);
require ($rep.$vues['erreur']);
break;
}
} catch (PDOException $e)
{
//si erreur BD, pas le cas ici
$dVueEreur[] = "Erreur BD!!! ";
$dVueErreur[] = "Erreur BD!!! ";
require ($rep.$vues['erreur']);
}
catch (Exception $e2)
{
$dVueEreur[] = "Erreur inattendue!!! ";
$dVueErreur[] = "Erreur inattendue!!! ";
require ($rep.$vues['erreur']);
}
@ -76,15 +80,31 @@ class CtrlUtilisateur {
global $rep,$vues;
$action=NULL;
$user=MdlUtilisateur::isConnected();
$nombreListe=MdlUtilisateur::recupererNombreDeListe();
require ($rep.$vues['profil']);
}
function supprimerCompte(array $dVueErreur){
global $rep,$vues;
$action=NULL;
$user=MdlUtilisateur::suppressionUtilisateur();
MdlUtilisateur::suppressionUtilisateur();
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

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

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

@ -30,25 +30,54 @@ class MdlUtilisateur
$id=Validation::cleanInt($_SESSION['id']);
$nom=Validation::cleanString($_SESSION['nom']);
$prenom=Validation::cleanString($_SESSION['prenom']);
$pseudo=Validation::cleanString($_SESSION['pseudo']);
$pseudo=Validation::cleanPseudo($_SESSION['pseudo']);
$email=Validation::cleanMail($_SESSION['email']);
return new Utilisateur($id,$nom,$prenom,$pseudo,$email);
}
else return null;
}
public static function déconnexion(){
session_unset();
session_destroy();
$_SESSION = array();
}
public function suppressionUtilisateur(){
public static function recupererNombreDeListe(){
$listeGtw = new ListeGateway();
$id = Validation::cleanInt($_SESSION['id']);
return $listeGtw->CountListe(intval($id));
}
public static function suppressionUtilisateur(){
$userGtw = new UtilisateurGateway();
$id=Validation::cleanInt($_SESSION['id']);
$userGtw->SupprimerUtilisateur(intval($id));
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(){
$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(){
@ -66,11 +69,11 @@ class MdlVisiteur
}
public function AjouterListePublic(&$dVueErreur){
$taskGtw = new ListeGateway();
$listGtw = new ListeGateway();
$nom=$_POST['nom-ajout-liste'];
$description=$_POST['description-ajout-liste'];
Validation::val_form_add($nom,$description,$dVueErreur);
$taskGtw->Ajouter($nom, $description,1, true);
$listGtw->Ajouter($nom, $description,1, true);
}
public function check(){

@ -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){
$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)));
}
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){
$query = 'SELECT * FROM ToDoList_Utilisateur WHERE email=:mail';
$this->con->executeQuery($query, array('mail' => array($mail, PDO::PARAM_STR)));

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<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 name="viewport" content="width=device-width, initial-scale=1">
<title>Home Page</title>
@ -37,7 +37,7 @@
</button>
</div>
<div class="modal-body row">
<form class="col" method="POST" action="index.php?action=AjouterListePublic">
<form class="col" method="POST">
<div class="form-group">
<?php
if(isset($dVueErreur['nom'])){?>
@ -113,14 +113,14 @@
</button>
</div>
<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">
<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 class="form-group">
<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>
<button type="submit" class="btn btn-primary pull-right">Ajouter</button>
<input type="hidden" name="action" value="AjouterTache">
@ -145,7 +145,7 @@
</button>
</div>
<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">
<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() ?>">
@ -219,12 +219,15 @@
?>
<nav aria-label="Page navigation example">
<center>
<p>Page n°<?php echo $_COOKIE['page'] ?></p>
</center>
<ul class="pagination justify-content-center">
<li class="page-item">
<a class="page-link" href="#">Previous</a>
<a class="page-link" href="previousPage">Previous</a>
</li>
<li class="page-item">
<a class="page-link" href="#">Next</a>
<a class="page-link" href="nextPage">Next</a>
</li>
</ul>
</nav>

@ -3,9 +3,9 @@
<html>
<head>
<title>Page d'inscription</title>
<link rel="shortcut icon" href="./vue/Images/gif.gif" type="../Images/gif">
<meta charset="UTF-8">
<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">
<!-- CSS only -->
<link rel="stylesheet" href="./vue/css/style.css">
@ -34,7 +34,7 @@
<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>
</div>
</div>
@ -44,7 +44,7 @@
<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>
</div>
</div>

@ -55,20 +55,50 @@
<p class="mb-0">Nombre de liste</p>
</div>
<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 class="text-center">
<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
</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
</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-content">
<div class="modal-header">

Loading…
Cancel
Save