From 58510209baecadc6483b9eb594e092957da43c60 Mon Sep 17 00:00:00 2001 From: Lucie Bedouret Date: Tue, 13 Dec 2022 15:57:28 +0100 Subject: [PATCH] ADD: ajout de pas mal de trucs qui marchent --- .DS_Store | Bin 0 -> 8196 bytes assets/.DS_Store | Bin 0 -> 6148 bytes assets/checklist.png | Bin 0 -> 16521 bytes config/Autoload.php | 8 ++- config/Validation.php | 23 ++++++- config/config.php | 18 +++-- controleurs/ControleurUtilisateur.php | 40 +++++++---- controleurs/ControleurVisiteur.php | 88 ++++++++++++++++--------- controleurs/FrontControleur.php | 21 +++--- index.php | 24 ++++++- modeles/{ => Gateways}/Connection.php | 0 modeles/Gateways/ListeGateway.php | 91 +++++++++++++++++++------- modeles/Gateways/UserGateway.php | 89 +++++++++++++++---------- modeles/Modele/ListModel.php | 25 +++++++ modeles/Modele/UserModel.php | 18 +++-- modeles/Modele/VisiteurModel.php | 39 ++++++----- modeles/Métier/Liste.php | 22 ++----- modeles/Métier/Tache.php | 29 ++------ modeles/Métier/Utilisateur.php | 4 +- vues/.DS_Store | Bin 0 -> 6148 bytes vues/acceuil.php | 57 +++++++++++++--- vues/connection.php | 28 ++++---- vues/creationListe.php | 20 ++++++ vues/inscription.php | 24 +++---- vues/listesPrivees.php | 23 +++++++ vues/profile.php | 19 ++++++ vues/styles/.DS_Store | Bin 0 -> 6148 bytes vues/styles/connectionStyle.css | 33 ++++++++++ 28 files changed, 520 insertions(+), 223 deletions(-) create mode 100644 .DS_Store create mode 100644 assets/.DS_Store create mode 100644 assets/checklist.png rename modeles/{ => Gateways}/Connection.php (100%) create mode 100644 modeles/Modele/ListModel.php create mode 100644 vues/.DS_Store create mode 100644 vues/creationListe.php create mode 100644 vues/listesPrivees.php create mode 100644 vues/profile.php create mode 100644 vues/styles/.DS_Store create mode 100644 vues/styles/connectionStyle.css diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..fd00510955bde19de481934cfdffab0b42677380 GIT binary patch literal 8196 zcmeHMO=}ZD7=EXX&Bh`Gw51ne!E4Ef7FzHUV-y2Yi>viuC1$fRP2KD)*-fLAK#qz( z!yn+ygJ*w(cYlT_edfa@*`(Eih^;eW=6!eOedgntuYET}#Hs_YOteNs7NU^(Wh8Tg zC>L=iEa;pSNCrGnOi|tEE!XGnjJ3%y3>XFs1BL;^fMMWYU;uZv2-Y$8zA81TVZbo( zUos%h2OCkyik4#~<uMVf9g$lx7!{z z@>g#2AZ~Vpc3%RzUK=KRPr8A}hgCiZyhvglRbb_;TqD1FbW~cmx3)&>_EC9b1N!FH z=4h0&R<0FqK5V@7djWr=2F&!KL6_8XlD>sDH6kx+`7U}W08<5ir|h(NFHE4R@*c0% zG!@pT?BeRz_n&X2>*#Usmp0-4$?Y6E{lMoz2X(7Hwun2R@5Zq0QIU4# z)DED7dOX*#w`0U2J(fEh6AsSTO6M~k(c=Lxc*T5F{e8lFPqD#0ZW;Ic zpYepd%YM6A_uDnA{3l+}=kH-$$wWW|L_h>YKm>kIz-KRQdXlOr0wN#+Uj+R7(CDsR z>5v+q4u&`aP$x`>aUEv~YV!oOD;-jqp;@+4v(@T|VcE`ntGcdqNX>Rw?9AuX&Q>QB zi`|)TQ4Z@;6-7V<4hbCR<;>^*ivGj-|FB6{A|L|)ihxa)SIY%osb=fw<$TsQ`ZfL2 pSR3UGF^Z`%ih1Fq_-wDP`I`5;(jhh4nU8j={s=f1nF#y^fe+!M8~p$P literal 0 HcmV?d00001 diff --git a/assets/checklist.png b/assets/checklist.png new file mode 100644 index 0000000000000000000000000000000000000000..51065531b51289307d46c9247d02e4a633ec0e2a GIT binary patch literal 16521 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 literal 0 HcmV?d00001 diff --git a/config/Autoload.php b/config/Autoload.php index d651342..87afab1 100644 --- a/config/Autoload.php +++ b/config/Autoload.php @@ -1,5 +1,9 @@ \ No newline at end of file diff --git a/controleurs/ControleurUtilisateur.php b/controleurs/ControleurUtilisateur.php index 84260f2..1483345 100644 --- a/controleurs/ControleurUtilisateur.php +++ b/controleurs/ControleurUtilisateur.php @@ -1,15 +1,18 @@ accessPrivateLists($arrayErrorViews); + case "accessProfilePage": + require($rep.$vues['profile']); + break; case "deconnection": $this->deconnection($arrayErrorViews); break; @@ -28,14 +31,16 @@ class UserController{ } } - public function deconnection($arrayErrorViews){ - // appeler la méthode deco du modèle - $retour = UserModel::deconnection(); - require($rep.$vues['acceuil']); + function deconnection($arrayErrorViews){ + global $rep, $vues, $dataView; + $model = new UserModel(); + $retour = $model->deconnection(); + $_REQUEST['action']=null; + $control= new ControleurVisiteur(); } - public function creerListePv($arrayErrorViews){ - global $rep, $vues; + function creerListePv($arrayErrorViews){ + global $rep, $vues, $dataView; //recupérer les valeurs du formulaire $nomListe=$_POST['ListName']; $privee=$_POST['isPrivate']; @@ -62,20 +67,27 @@ class UserController{ } } - public function changerPassword($arrayErrorViews){ - global $rep, $vues; + function changerPassword($arrayErrorViews){ + global $rep, $vues, $dataView; $password1=$_POST['password1']; $passwordConfirm=$_POST['passwordConfirm']; $newPassword=Validation::val_changer_password($password1,$passwordConfirm); try{ UserModel::changerPassword($newPassword); - require($rep.$vues['profil']) + require($rep.$vues['profil']); }catch(PDOException $e){ $dataView[]="Erreur inatendue"; require($rep.$vues['erreur']); } } + + function accessPrivateLists($arrayErrorViews){ + global $rep, $vues, $dataView; + $model = new UserModel(); + $dataView = $model->pullListesPrivees($_SESSION['login']); + require($rep.$vues['listesPrivees']); + } } ?> \ No newline at end of file diff --git a/controleurs/ControleurVisiteur.php b/controleurs/ControleurVisiteur.php index dc2c06b..c07f498 100644 --- a/controleurs/ControleurVisiteur.php +++ b/controleurs/ControleurVisiteur.php @@ -1,19 +1,25 @@ reinit(); break; + case 'accessConnectionPage': + require($rep.$vues['connection']); + break; + case "accessInscription": + require($rep.$vues['inscription']); + break; + case "accessCreationListePage": + require($rep.$vues['creationListe']); + break; case "connection": $this->connection($arrayErrorViews); break; @@ -35,7 +41,7 @@ class VisitorController { $this->supprTache($arrayErrorViews); default : $arrayErrorViews[]="Erreur innatendue !!!"; - require($rep.$vues['error']); + require($rep.$vues['acceuil']); } } catch(PDOException $e){ $dataView[]="Erreur inatendue"; @@ -45,49 +51,67 @@ class VisitorController { } public function reinit(){ - global $rep,$vues; + global $rep,$vues,$dataView; + $model = new VisiteurModel(); + $dataView = $model->pullPublicLists(); require($rep.$vues['acceuil']); + } public function connection(array $vues_erreur){ - global $rep,$vues; - + global $rep,$vues,$dataView; $usrname=$_POST['login']; $pwd=$_POST['mdp']; Validation::clear_string($pwd); Validation::val_connexion($usrname,$pwd,$vues_erreur); - - $model = new UserModel(); - $worked=$model->connexion(); - /* Utiliser si jamais connexion n'a pas marché et qu'on veut remettre le login dans la page pour que le visiteur n'ait pas à le retaper - $dVue = array ( - 'username' => $usrname, - ); - */ - if($worked==false){ - require('erreur.php'); + $model= new VisiteurModel(); + if($model->existUser($usrname)){ + if(password_verify($pwd,$model->getHashedPassword($usrname))){ + $model->connexion($usrname); + $_REQUEST['action']=null; + $this->reinit(); + } + else{ + $arrayErrorViews =array('username'=>$usrname,'password'=>$pwd); + require($rep.$vues['erreur']); + } + } + else{ + $arrayErrorViews =array('username'=>$usrname,'password'=>$pwd); + require($rep.$vues['erreur']); } } public function inscription(array $vues_erreur){ - global $rep,$vues; - - $usrname=$_POST['login']; - $pwd=$_POST['mdp']; - Validation::val_connexion($usrname,$pwd,$vues_erreur); - - $model = new UserModel(); - $model->inscription(); + global $rep,$vues,$dataView; + $usrname=$_POST['username']; + $pwd=$_POST['password']; + $confirm=$_POST['confirmpassword']; + $vues_erreur=Validation::val_inscription($usrname,$pwd,$confirm,$vues_erreur); + if($vues_erreur == []){ + $hash= password_hash($pwd,PASSWORD_DEFAULT); + $model = new VisiteurModel(); + $model->inscription($usrname,$hash); + } + $_REQUEST['action']=null; + new ControleurVisiteur(); } public function creerListe(array $vues_erreur){ global $rep, $vues; - require($rep.$vues['creationListe']); - - $nom=$_POST['nom']; - + $nom=$_POST['name']; $model = new ListeModel(); - $model->creerListe($nom); + if(isset($_SESSION['login'])){ + foreach($_POST['private'] as $valeur){ + $private=$valeur; + $model->creerListe($nom,$private); + } + } + else{ + $model->creerListe($nom,null); + } + $_REQUEST['action']=null; + $this->reinit(); } public function supprListe(array $vues_erreur){ diff --git a/controleurs/FrontControleur.php b/controleurs/FrontControleur.php index 22e743c..f0e4af6 100644 --- a/controleurs/FrontControleur.php +++ b/controleurs/FrontControleur.php @@ -1,27 +1,24 @@ diff --git a/modeles/Connection.php b/modeles/Gateways/Connection.php similarity index 100% rename from modeles/Connection.php rename to modeles/Gateways/Connection.php diff --git a/modeles/Gateways/ListeGateway.php b/modeles/Gateways/ListeGateway.php index 5d48252..30c9c11 100644 --- a/modeles/Gateways/ListeGateway.php +++ b/modeles/Gateways/ListeGateway.php @@ -9,38 +9,81 @@ class ListeGateway { $this->co = $co; } - public function getByCreator(int $idUsr) : array { - $listes = null; + public function getPublicLists():array{ + $listes = array(); $taches = null; - if(!empty($idUsr)){ - try { - $co = $this->co; + try { + $co = $this->co; - $query = "SELECT idListe FROM HasList WHERE idUser=:idUser"; + $query = "SELECT * FROM Liste WHERE nomCreateur IS NULL"; - $co->executeQuery($query, array(':id' => array($id, PDO::PARAM_STR))); + $co->executeQuery($query, []); - $results = $co->getResults(); + $results = $co->getResults(); - Foreach($results as $row){ - $idListe = $row['idListe']; - $queryTaches = "SELECT t.* FROM Tache t, HasTache h WHERE t.id=h.idTache AND h.idListe=:idListe"; - $co->executeQuery($queryTaches, array(':idListe' => array($idListe, PDO::PARAM_STR))); - $resultsTaches = $co->getResults(); + foreach($results as $row){ + $idListe = $row['id']; + $queryTaches = "SELECT * FROM Tache WHERE idListe=:idListe"; + $co->executeQuery($queryTaches, array(':idListe' => array($idListe, PDO::PARAM_INT))); + $resultsTaches = $co->getResults(); - Foreach($resultsTaches as $rowTaches){ - $taches[] = new Tache($rowTaches['id'], $rowTaches['intitule'], $rowTaches['isCompleted'], $rowTaches['description']); + foreach($resultsTaches as $rowTaches){ + if($rowTaches['complete']=="0"){ + $taches[] = new Tache($rowTaches['id'], $rowTaches['nom'],false,$idListe); + }else{ + $taches[] = new Tache($rowTaches['id'], $rowTaches['nom'],true,$idListe); } - - $listes[] = new Liste($row['id'], $row['nom'], $taches); - $taches = null; + } + + $listes[] = new Liste($row['id'], $row['nom'],null, $taches); + $taches = null; } - catch(PDOException $Exception) { - echo 'erreur'; - echo $Exception->getMessage(); + } + catch(PDOException $Exception) { + echo 'erreur'; + echo $Exception->getMessage(); + } + + return $listes; + } + + public function getByCreator(string $usr) : array { + $listes = array(); + $taches = null; + try { + $co = $this->co; + + $query = "SELECT * FROM Liste WHERE nomCreateur=:nomCrea"; + + $co->executeQuery($query, array('nomCrea' => array($usr, PDO::PARAM_STR))); + + $results = $co->getResults(); + + foreach($results as $row){ + $idListe = $row['id']; + $queryTaches = "SELECT * FROM Tache WHERE idListe=:idListe"; + $co->executeQuery($queryTaches, array(':idListe' => array($idListe, PDO::PARAM_INT))); + $resultsTaches = $co->getResults(); + + foreach($resultsTaches as $rowTaches){ + if($rowTaches['complete']=="0"){ + $taches[] = new Tache($rowTaches['id'], $rowTaches['nom'],false,$idListe); + }else{ + $taches[] = new Tache($rowTaches['id'], $rowTaches['nom'],true,$idListe); + } + + } + + $listes[] = new Liste($row['id'], $row['nom'],$usr, $taches); + $taches = null; } } + catch(PDOException $Exception) { + echo 'erreur'; + echo $Exception->getMessage(); + } + return $listes; } @@ -92,15 +135,15 @@ class ListeGateway { } } - public function creerListe(string $nom, int $idCreator){ + public function creerListe(string $nom, ?string $nomCreator){ try{ $co = $this->co; - $insertQuery = "INSERT INTO Liste VALUES (NULL, :nom, :idCreator)"; + $insertQuery = "INSERT INTO Liste VALUES (NULL, :nom, :nomCreator)"; $co->executeQuery($insertQuery, array('nom' => array($nom, PDO::PARAM_STR), - 'idCreator' => array($idCreator, PDO::PARAM_INT))); + 'nomCreator' => array($nomCreator, PDO::PARAM_STR))); } catch(PDOException $Exception){ echo 'erreur'; diff --git a/modeles/Gateways/UserGateway.php b/modeles/Gateways/UserGateway.php index ad6a852..2c84c61 100644 --- a/modeles/Gateways/UserGateway.php +++ b/modeles/Gateways/UserGateway.php @@ -1,32 +1,50 @@ co = $co; } - public function creerUtilisateur(string $nom, string $pwd){ - if(!empty($id) && !empty($nom) && empty($password)){ - try{ - $co = $this->co; + function getUtilisateurNom(string $usr){ + $co=$this->co; + $query="SELECT nom FROM Utilisateur WHERE nom=:nom"; + $co->executeQuery($query,array('nom'=>array($usr,PDO::PARAM_STR))); + return $co->getResults(); - $query = "INSERT INTO Utilisateur VALUES (NULL, :nom, :pwd)"; + } - $co->executeQuery($query, array(':nom' => array($nom, PDO::PARAM_STR), ':pwd' => array($pwd, PDO::PARAM_STR))); - } - catch(PDOException $Excception){ - echo 'erreur'; - echo $Exception->getMessage(); - } + function getHashedPassword(string $usrname):?string{ + $hashedPwd=null; + $co=$this->co; + $query="SELECT pwd FROM Utilisateur WHERE nom=:nom"; + $co->executeQuery($query,array('nom'=>array($usrname,PDO::PARAM_STR))); + $res=$co->getResults(); + foreach($res as $row){ + $hashedPwd=$row['pwd']; } + return $hashedPwd; } - public function delUtilisateur(int $id){ + function creerUtilisateur(string $nom, string $pwd){ + try{ + $co = $this->co; + + $query = "INSERT INTO Utilisateur VALUES (:nom, :pwd)"; + + $co->executeQuery($query, array(':nom' => array($nom, PDO::PARAM_STR), ':pwd' => array($pwd, PDO::PARAM_STR))); + } + catch(PDOException $Exception){ + echo 'erreur'; + echo $Exception->getMessage(); + return false; + } + + return true; + } + + function delUtilisateur(int $id){ if(!empty($id)){ try{ $co = $this->co; @@ -42,7 +60,7 @@ class UserGateway { } } - public function putUtilisateur(Utilisateur $usr){ + function putUtilisateur(Utilisateur $usr){ if(!empty($usr.getId()) && !empty($usr.getNom()) && empty($usr.getPassword())){ try{ $co = $this->co; @@ -66,7 +84,7 @@ class UserGateway { } } - public function getUtilisateurById(int $id) : Utilisateur { + function getUtilisateurById(int $id) : Utilisateur { $usr = null; if(!empty($id)){ try{ @@ -78,7 +96,7 @@ class UserGateway { $results = $co->getResults(); - Foreach($results as $row){ + foreach($results as $row){ $usr = new Utilisateur($row['id'], $row['nom'], $row['pwd']); } } @@ -91,27 +109,32 @@ class UserGateway { return $usr; } - public function getUtilisateurbyNameAndPassword(string $nom, string $pwd) : Utilisateur { + function getUtilisateurbyName(string $nom) : ?Utilisateur { $usr = null; - if(!empty($nom) && !empty($password)){ - try{ - $co = $this->co; + $tabList= null; + try{ + $co = $this->co; - $query = "SELECT * FROM Utilisateur WHERE nom=:nom AND pwd=:pwd"; + $queryLists="SELECT id, nom FROM Liste WHERE nomCreateur=:nomCrea"; + $queryUser = "SELECT * FROM Utilisateur WHERE nom=:nom"; - $co->executeQuery($query, array(':nom' => array($nom, PDO::PARAM_STR), ':pwd' => array($pwd, PDO::PARAM_STR))); + $co->executeQuery($queryLists,array('nomCrea'=>array($nom,PDO::PARAM_STR))); + $res = $co->getResults(); + foreach($res as $row){ + $tabList[]= new Liste($row['id'],$row['nom'],$nom,array()); + } + $co->executeQuery($queryUser, array('nom' => array($nom, PDO::PARAM_STR))); - $results = $co->getResults(); + $results = $co->getResults(); - Foreach($results as $row){ - $usr = new Utilisateur($row['id'], $row['nom'], $row['pwd']); - } - } - catch(PDOException $Exception){ - echo 'erreur'; - echo $Exception->getMessage(); + foreach($results as $row){ + $usr = new Utilisateur($row['nom'], $row['pwd'],$tabList); } } + catch(PDOException $Exception){ + echo 'erreur'; + echo $Exception->getMessage(); + } return $usr; } diff --git a/modeles/Modele/ListModel.php b/modeles/Modele/ListModel.php new file mode 100644 index 0000000..0f0017b --- /dev/null +++ b/modeles/Modele/ListModel.php @@ -0,0 +1,25 @@ +listgw = new ListeGateway($co); + } + + function creerListe(string $nom, $private){ + if(isset($_SESSION['login'])){ + if($private="on"){ + $this->listgw->creerListe($nom,$_SESSION['login']); + }else{ + $this->listgw->creerListe($nom,null); + } + }else{ + $this->listgw->creerListe($nom,null); + } + } +} + +?> \ No newline at end of file diff --git a/modeles/Modele/UserModel.php b/modeles/Modele/UserModel.php index 6f8a05a..d77b792 100644 --- a/modeles/Modele/UserModel.php +++ b/modeles/Modele/UserModel.php @@ -4,29 +4,35 @@ class UserModel{ public $listgw; public $usergw; - public function __construct(){ - $co = new Connection(); + function __construct(){ + global $rep,$vues,$bd; + $co = new Connection($bd['dsn'],$bd['user'],$bd['pswd']); $this->usergw = new UserGateway($co); $this->listgw = new ListeGateway($co); } - public function deconnection(){ + function deconnection(){ session_unset(); session_destroy(); $_SESSION = array(); } - public function creerListePv($nom,$idCeator){ + function creerListePv($nom,$idCeator){ $this->listgw->creerListe($nom,$idCreator); } - public function desinscription($login){ + function desinscription($login){ $this->usergw->delUtilisateur($login); } - public function changerPassword($newPassword){ + function changerPassword($newPassword){ $this->usergw->putPassword($newPassword); } + + function pullListesPrivees($nom){ + $listes=$this->listgw->getByCreator($nom); + return $listes; + } } ?> \ No newline at end of file diff --git a/modeles/Modele/VisiteurModel.php b/modeles/Modele/VisiteurModel.php index 7398b04..d1bad16 100644 --- a/modeles/Modele/VisiteurModel.php +++ b/modeles/Modele/VisiteurModel.php @@ -1,39 +1,42 @@ gtwUsr = new UserGateway($co); $this->gtwListe = new ListeGateway($co); } - public function get_gtwUsr(): UserGateway { - return $this->gtwUsr; + public function getHashedPassword(string $usr){ + return $this->gtwUsr->getHashedPassword($usr); } - public function get_gtwListe(): ListeGateway { - return $this->gtwListe; - } - - public function connexion($login, $mdp){ - $results = $this->get_gtwUsr()->getUtilisateurbyNameAndPassword($login, $mdp); - if ($results != NULL){ - $_SESSION['role'] = 'user'; - $_SESSION['login'] = $login; + public function existUser(string $usr):bool{ + if($this->gtwUsr->getUtilisateurNom($usr) != null){ return true; } return false; } - public function inscription($login, $mdp){ - $this->get_gtwUsr()->creerUtilisateur($login, $mdp); + public function connexion($login){ + $_SESSION['role'] = 'Utilisateur'; + $_SESSION['login'] = $login; } - public function creerListe($nom) { - $this->get_gtwListe()->creerListe($nom, NULL); + public function pullPublicLists(){ + return $this->gtwListe->getPublicLists(); + } + + public function inscription($login, $mdp){ + $result=$this->gtwUsr->creerUtilisateur($login, $mdp); + if ($result ==true){ + $_SESSION['role'] = 'Utilisateur'; + $_SESSION['login'] = $login; + } } public function supprListe($id) { diff --git a/modeles/Métier/Liste.php b/modeles/Métier/Liste.php index f4103f5..f731528 100644 --- a/modeles/Métier/Liste.php +++ b/modeles/Métier/Liste.php @@ -1,27 +1,17 @@ id=$i; $this->nom=$n; + $this->nomCreateur=$nomCrea; $this->taches=$t; } - - function get_id(): int { - return $this->id; - } - - function get_nom(): string { - return $this->nom; - } - - function get_idCreator(): array { - return $this->taches; - } } ?> \ No newline at end of file diff --git a/modeles/Métier/Tache.php b/modeles/Métier/Tache.php index cec783c..123f746 100644 --- a/modeles/Métier/Tache.php +++ b/modeles/Métier/Tache.php @@ -1,31 +1,16 @@ id = $i; - $this->intitule = $in; + $this->nom = $in; $this->isCompleted = $is; - } - - function get_id(): int { - return $this->id; - } - - function get_intitule(): string { - return $this->intitule; - } - - function get_isCompleted(): boolean { - return $this->isCompleted; - } - - function get_idListe(): string { - return $this->idListe; + $this->idListe=$idListe; } } diff --git a/modeles/Métier/Utilisateur.php b/modeles/Métier/Utilisateur.php index 72bf17f..7c3297e 100644 --- a/modeles/Métier/Utilisateur.php +++ b/modeles/Métier/Utilisateur.php @@ -1,13 +1,11 @@ id=$i; + function __construct(string $n, string $p, $liste) { $this->nom=$n; $this->password=$p; $this->listListe=$liste; diff --git a/vues/.DS_Store b/vues/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..d3f29c96fc2bf2049c587a1b134601eb2c5e8163 GIT binary patch literal 6148 zcmeHK&x_MQ6n@jKyXh9Sf{GU*;B{HMu&{-_#JV25i4i@h)TD`SFlIuMZjn;RQSp!Q z=6|C9izofw%oI#o_qL)kFU)*zethpGAIwaKh{Sjn9S{wO$U$N3?xNaYJkDj!I;Mwt zLdBR-LMiQ2PN!?LZHHCBD)6@{z-zZp0ZsA5^y~V~AEt5|rZU6~-X89u?Eg>(kLU^* zk}^Coyb3FyTYBxcxu09yU2qCKoUz!<5w}~MtH_X1iChJ|{QQjKQ;U5K`%(gSg`6cl zQZdfpb8F)}ciyxj^pUf`H@-%k6uix>uPxTL%K2U~%BG^?`+0N2d6^sazl3?3l+|$f zO?0-pm$rAD9jEWS^iSp7uYzh;j)USkx1LCuhATe^pC<8qGPr(UW>t`6aiIuF6l2PZ zXGs>x`B=`fs8n2E4>&!iHyPYqEQWjTXtdmO7YB!j@Q+4E%Vp2Gap&&wRp5^*@Dq5Q BxC8(I literal 0 HcmV?d00001 diff --git a/vues/acceuil.php b/vues/acceuil.php index cf02a81..1b829ca 100644 --- a/vues/acceuil.php +++ b/vues/acceuil.php @@ -8,17 +8,58 @@

Welcome to our fantastic to do list app !

-
- - - + + + +
+ '; + } + else{ + echo' +
+
+ + +
+
'; + }?>
+ +
+ + +
+ '; + }?>
-

Todo listes publiques

+

Public Lists

+ nom; + echo '
'; + if($liste->taches != null){ + foreach($liste->taches as $tache){ + echo ' * '.$tache->nom; + echo '
'; + } + } + } + } + ?> +
+
+ + +
+
-
-
- + \ No newline at end of file diff --git a/vues/connection.php b/vues/connection.php index daf997c..86bc3ba 100644 --- a/vues/connection.php +++ b/vues/connection.php @@ -9,19 +9,25 @@

You are back ?!

-

Username

- -

Password

- +
+

Login +

+

Password +

+
+
+ + +


- -
-
-

You are new here?

- - - +
+
+
+

You are new here?

+ + +
\ No newline at end of file diff --git a/vues/creationListe.php b/vues/creationListe.php new file mode 100644 index 0000000..b222d8b --- /dev/null +++ b/vues/creationListe.php @@ -0,0 +1,20 @@ + + + +
+

Create a new list

+
+

Name of the liste +

+ + '; + } + ?> + + +
+
+ + \ No newline at end of file diff --git a/vues/inscription.php b/vues/inscription.php index 4a54c48..865584f 100644 --- a/vues/inscription.php +++ b/vues/inscription.php @@ -10,18 +10,18 @@
-

Please enter all the informations :

-

Username

- -

Password

- -

Email

- -

Date Of Birth

- -
-
- +
+

Please enter all the informations :

+

Login +

+

Password +

+

Confirm Password +

+
+ + +
\ No newline at end of file diff --git a/vues/listesPrivees.php b/vues/listesPrivees.php new file mode 100644 index 0000000..422d55e --- /dev/null +++ b/vues/listesPrivees.php @@ -0,0 +1,23 @@ + + + +
+

Private Lists

+ nom; + echo '
'; + if($liste->taches != null){ + foreach($liste->taches as $tache){ + echo ' * '.$tache->nom; + echo '
'; + } + } + } + } + ?> + +
+ + \ No newline at end of file diff --git a/vues/profile.php b/vues/profile.php new file mode 100644 index 0000000..c538361 --- /dev/null +++ b/vues/profile.php @@ -0,0 +1,19 @@ + + + + +

What you wanna young padawan?

+
+
+ + +
+
+
+
+ + +
+
+ + \ No newline at end of file diff --git a/vues/styles/.DS_Store b/vues/styles/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..244c98dc5803cd48067b56ead773af2c32334f8e GIT binary patch literal 6148 zcmeHKF-`+P3>-s>NHkYc?h7LEgH;p?>U;nt&>dWHP|#hM=kP=r+Y3r`NlSsokv+Fw z&#rEYa}2=N?@xC?2VhBe#KFVdeBXU$S1n^iI?ovJiY?yofqqtfKH=OBdoo}6JLW%Q z#ELs3#)p2`@A_dEwZJEF^%ZvhP-Ufn6p#W^Knh5Kiwbz}r7dp~6{Ua_kOIF7`1hgE z9c#lWF+Lp(F#-@5Oo#C~W(i{P1hF=p5}Bb{Qi(~mHey)PnJ=xbHk=ZZ4vU+4PP^IK zgko_!^Cik*HBnItNP$xYu5;OW|G%eSnEy{nT1f#Z@UIlG#b&!%^Oag}oxPm*+CqP% r{}^kdoFQ5WV*ezc!o_gU)==iTWepy2zx!UnuYm1(Y56 literal 0 HcmV?d00001 diff --git a/vues/styles/connectionStyle.css b/vues/styles/connectionStyle.css new file mode 100644 index 0000000..2a3dfa0 --- /dev/null +++ b/vues/styles/connectionStyle.css @@ -0,0 +1,33 @@ +html, +body { + height: 100%; +} + +body { + display: flex; + align-items: center; + padding-top: 40px; + padding-bottom: 40px; + background-color: #f5f5f5; +} + +.form-signin { + max-width: 330px; + padding: 15px; +} + +.form-signin .form-floating:focus-within { + z-index: 2; +} + +.form-signin input[type="text"] { + margin-bottom: -1px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.form-signin input[type="password"] { + margin-bottom: 10px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} \ No newline at end of file