Compare commits

..

10 Commits

@ -18,9 +18,33 @@
:information_source: Réaliser un projet de PHP consistant à faire une To do List, qui contiendra des visiteurs, utilisateurs ou administrateur.
# Repartition du Gitlab
La racine de notre gitlab est composé de deux dossiers essentiels au projet:
# Fonctionnalités
- Visiteur :
- Ajouter/Supprimer une liste publique
- Modifier une liste publique
- Ajouter/Supprimer des tâches dans une liste publique
- Se connecter
- S'inscrire
- Cocher une tâche d'une liste publique
- Utilisateur (en plus des fonctionnalités visiteurs) :
- Ajouter/Supprimer une liste priver
- Modifier ses listes privées
- Ajouter/Supprimer des tâches à ses listes privé
- Voir son profil
- Supprimer son compte (Toutes ces tâches sont aussi supprimées)
- Modifier son mode de passe
- voir ses informations (Nom/Prénom/mail/Nombre de liste privé réalisé)
- Cocher une tâche d'une liste privé
- Administrateur (considérer comme un utilisateur, mais avec des droits en plus) :
- Voir tous les utilisateurs
- Supprimer un utilisateur
# Répartition du Gitlab
La racine de notre gitlab est composée de deux dossiers essentiels au projet:
[**src**](src) : **Toute la partie codage du site web**
@ -46,7 +70,7 @@ Notre environnement de travail se base sur plusieurs outils :
# Technicien en charge de l'application
La composition pour le projet se voit réaliser par deux élèves de l'IUT d'aubière:
La composition pour le projet se voit réaliser par deux élèves de l'IUT d'Aubière:
<br>
⚙️ Emre KARTAL
<br>

@ -3,7 +3,7 @@
-- https://www.phpmyadmin.net/
--
-- Hôte : localhost
-- Généré le : ven. 16 déc. 2022 à 14:49
-- Généré le : ven. 16 déc. 2022 à 22:44
-- Version du serveur : 10.5.15-MariaDB-0+deb11u1
-- Version de PHP : 7.4.28
@ -60,7 +60,8 @@ CREATE TABLE `ToDoList_Admin` (
--
INSERT INTO `ToDoList_Admin` (`idAdmin`) VALUES
(50);
(50),
(58);
-- --------------------------------------------------------
@ -74,7 +75,7 @@ CREATE TABLE `ToDoList_Liste` (
`description` varchar(200) NOT NULL,
`dateCreation` date NOT NULL,
`estPublic` tinyint(1) NOT NULL,
`idUtilisateur` int(11) NOT NULL
`idUtilisateur` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
@ -82,29 +83,11 @@ CREATE TABLE `ToDoList_Liste` (
--
INSERT INTO `ToDoList_Liste` (`id`, `nom`, `description`, `dateCreation`, `estPublic`, `idUtilisateur`) VALUES
(2, 'Work', 'Work', '2022-12-01', 1, 1),
(3, 'Job', 'J\'aime travailler', '2022-12-05', 1, 1),
(4, 'Fourniture Scolaire', 'Acheter les Fournitures Scolaire avant Septembre', '2022-12-06', 1, 1),
(6, 'Projet Blazor', 'Les tâches que je doit faire pour mon projet Blazor', '2022-12-06', 1, 1),
(7, 'SAE', 'Les tâches à faire pour la SAE', '2022-12-06', 1, 1),
(8, 'Supermarché', 'Acheter les courses au Supermarché', '2022-12-02', 1, 1),
(9, 'Voiture', 'Liste des choses à acheter pour ma voiture', '2022-12-01', 1, 1),
(11, 'Ordinateur', 'Les composants pour mon ordinateur', '2022-12-03', 1, 1),
(13, 'Test List', '', '2022-12-01', 1, 1),
(14, 'Test List 2', 'hahaa', '2022-12-02', 1, 1),
(40, 'TestList1', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ', '2022-12-15', 1, 49),
(41, 'TestList2', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ', '2022-12-14', 1, 1),
(42, 'TestList3', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ', '2022-12-15', 1, 49),
(43, 'TestList4', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ', '2022-12-15', 1, 49),
(44, 'Montre', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', '2022-12-12', 1, 1),
(45, 'Glace', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', '2022-12-13', 1, 49),
(46, 'Trotinette', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', '2022-12-15', 0, 49),
(47, 'Csharp', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', '2022-12-14', 1, 1),
(48, 'Book', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', '2022-12-15', 1, 49),
(49, 'Telephone', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', '2022-12-10', 1, 1),
(50, 'Clavier', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', '2022-12-13', 1, 49),
(51, 'Méthodes d\'optimisation', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', '2022-12-07', 1, 49),
(52, 'Casque', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', '2022-12-07', 1, 49);
(124, 'Iut', 'Ma liste de devoirs', '2022-12-16', 1, 1),
(125, 'Serie', 'Les series à regarder', '2022-12-16', 1, 1),
(150, 'Fourniture Scolaire', 'Mes fournitures Scolaires à acheter avant septembre', '2022-12-06', 1, NULL),
(155, 'Supermarché', 'Acheter les courses au Supermarché', '2022-12-02', 1, NULL),
(156, 'Ordinateur', 'Les composants pour mon ordinateur', '2022-12-03', 1, NULL);
-- --------------------------------------------------------
@ -126,15 +109,11 @@ CREATE TABLE `ToDoList_Tache` (
--
INSERT INTO `ToDoList_Tache` (`id`, `nom`, `description`, `dateCreation`, `estValide`, `idListe`) VALUES
(1, 'PHP', 'Finir le projet de PHP et les TPs', '2022-12-06', 0, 2),
(2, 'Blazor', 'Finir le projet de Blazor', '2022-12-06', 1, 2),
(3, 'Stage', 'Postuler chez CGI et Apside', '2022-12-06', 0, 3),
(4, 'CV', 'Finir le CV', '2022-12-06', 1, 3),
(5, 'Push', 'rayhan faut penser a push ton taff', '2022-12-06', 1, 6),
(6, 'Etre le goat', 'je suis le goat', '2022-12-06', 0, 7),
(7, 'Acheter le lait ', 'parce que il faut faire comme papa', '2022-12-06', 1, 8),
(8, 'Acheter des stylos', 'parce que Arthur en a pas', '2022-12-06', 0, 4),
(9, 'Réviser prog sys', 'Je suis dans la caca', '2022-12-06', 0, 3);
(139, 'Blazor', 'Finir le projet', '2022-12-16', 0, 124),
(140, 'Sae', 'Faire le rapport', '2022-12-16', 1, 124),
(141, 'Breaking Bad', 'Le top 1', '2022-12-16', 0, 125),
(142, 'The Walking Dead', 'Meme si apres la saison 7 cest pas ouf', '2022-12-16', 0, 125),
(145, 'ProgSys', 'Finir le tp', '2022-12-16', 0, 124);
-- --------------------------------------------------------
@ -157,8 +136,10 @@ CREATE TABLE `ToDoList_Utilisateur` (
INSERT INTO `ToDoList_Utilisateur` (`id`, `nom`, `prenom`, `pseudo`, `email`, `motDePasse`) VALUES
(1, 'Kartal', 'Emre', 'Malleo', 'emre.kartal10@etu.uca.fr', '00000'),
(49, 'Khedair', 'Rami', 'Rori63', 'rami.khedair@etu.uca.fr', '$2y$10$aqRyoGoXN9dxpGPsMYTNY.gkSDZwsIwORfb78HqleiuV3PvwQ75iO'),
(50, 'Rayhan', 'Hassou', 'rayhan', 'hassourayhan1@gmail.com', '$2y$10$D0sJ14i8bDdigDZZx1VLguWbviCbVw5cAQkwD/ja336MD3E2tFEH6');
(50, 'Rayhan', 'Hassou', 'rayhan', 'hassourayhan1@gmail.com', '$2y$10$cKfV6KB7siPhwMRbpoS/COMaZQKkYETj.HIQ5YWkrbc5qXo.9jvuK'),
(51, 'Lucas', 'Mielkarek', 'lukaka', 'lucas@gmail.com', '$2y$10$5AlX0WcLx.8r/WCxxcBeuOaeGTzftqk3jn9q2cKMZkft313y2a3.C'),
(57, 'Restitutio', 'Mathieu', 'marestituito', 'Matthieu.RESTITUITO@uca.fr', '$2y$10$RNj8XMe5UDWDuiocwwg.g../8powrKKNpQ1FmPzSBoN9JubfjYrIq'),
(58, 'Admin', 'Prof', 'Admin', 'Matthieu.RESTITUITO@admin.fr', '$2y$10$oE5jSXemC4NrKiQE9EUKYeO1RdTpbeXxj/FaayeVciBQxYdxsmNuW');
--
-- Index pour les tables déchargées
@ -212,19 +193,19 @@ ALTER TABLE `MaTable`
-- AUTO_INCREMENT pour la table `ToDoList_Liste`
--
ALTER TABLE `ToDoList_Liste`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=55;
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=157;
--
-- AUTO_INCREMENT pour la table `ToDoList_Tache`
--
ALTER TABLE `ToDoList_Tache`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=100;
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=152;
--
-- AUTO_INCREMENT pour la table `ToDoList_Utilisateur`
--
ALTER TABLE `ToDoList_Utilisateur`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=51;
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=59;
--
-- Contraintes pour les tables déchargées

@ -10,10 +10,25 @@ RewriteEngine On
# Règles de réécriture d'url
#---------------------------------
# Visiteur
RewriteRule ^login$ index.php?action=redirectionLogin [L]
RewriteRule ^inscription$ index.php?action=redirectionInscription [L]
RewriteRule ^VueListePublic$ index.php?action=redirectionListePublic [L]
RewriteRule ^previousPage$ index.php?action=pagePrécédente [L]
RewriteRule ^nextPage$ index.php?action=pageSuivante [L]
RewriteRule ^check$ index.php?action=check [L]
# Utilisateur
RewriteRule ^logout$ index.php?action=logout [L]
RewriteRule ^MonProfil$ index.php?action=redirectionProfil [L]
RewriteRule ^supprimerCompte$ index.php?action=supprimerCompte [L]
RewriteRule ^listePrive$ index.php?action=listePrive [L]
RewriteRule ^previousPagePrive$ index.php?action=pagePrécédentePrive [L]
RewriteRule ^nextPagePrive$ index.php?action=pageSuivantePrive [L]
RewriteRule ^checkPrive$ index.php?action=checkPrive [L]
# Admin
RewriteRule ^users$ index.php?action=redirectionVueUtilisateur [L]

@ -91,7 +91,7 @@ class Validation {
}
static function cleanText(string &$txt) {
$txt = preg_replace('/[^A-Za-z\-\^0-9\ ]/', '', $txt);
$txt = preg_replace('/[^A-Za-z\-\^0-9\ \à\é\^]/', '', $txt);
if($txt == null || $txt == '')
{
return null;

@ -16,5 +16,6 @@ $vues['listPrive']='vue/html/PageListePrive.php';
$vues['login']='vue/html/login.php';
$vues['NavBar']='vue/html/NavBar.php';
$vues['profil']='vue/html/profil.php';
$vues['users']='vue/html/pageUtilisateur.php';
?>

@ -6,7 +6,7 @@ class CtrlAdmin {
global $rep,$vues;
$dVueEreur = array ();
$dVueErreur = array ();
try{
$action=NULL;
@ -18,28 +18,33 @@ class CtrlAdmin {
case NULL:
$this->($dVueEreur);
$this->ConsulterUtilisateurs($dVueErreur);
break;
case "redirectionVueUtilisateur":
$this->ConsulterUtilisateurs($dVueErreur);
break;
case "SupprimerUtilisateur":
$this->SupprimerUtilisateur($dVueErreur);
break;
default:
$dVueEreur[] = "Erreur d'appel php";
require ($rep.$vues['home']);
$dVueErreur[] = "Erreur d'appel php";
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']);
}
@ -48,6 +53,19 @@ class CtrlAdmin {
exit(0);
}//fin constructeur
public function ConsulterUtilisateurs(array $dVueErreur){
global $rep,$vues;
$users = MdlAdmin::recupererUtilisateur();
$action=NULL;
require ($rep.$vues['users']);
}
public function SupprimerUtilisateur(array $dVueErreur){
global $rep,$vues;
$users = MdlAdmin::supprimerUtilisateur();
$this->ConsulterUtilisateurs($dVueErreur);
}
}//fin class
?>

@ -16,9 +16,8 @@ class CtrlUtilisateur {
switch($action) {
case NULL:
$this->ConsulterListePublic($dVueErreur);
$this->ConsulterListePrive($dVueErreur);
break;
case "logout":
@ -32,6 +31,10 @@ class CtrlUtilisateur {
case "supprimerCompte":
$this->supprimerCompte($dVueErreur);
break;
case "modifMdp":
$this->changerMotDePasse($dVueErreur);
break;
case "listePrive":
$this->ConsulterListePrive($dVueErreur);
@ -60,7 +63,15 @@ class CtrlUtilisateur {
case "SupprimerListePrive":
$this->SupprimerListePrive($dVueErreur);
break;
case "pagePrécédentePrive":
$this->listePrécédente($dVueErreur);
break;
case "pageSuivantePrive":
$this->listeSuivante($dVueErreur);
break;
default:
$dVueErreur[] = "Erreur d'appel php";
require ($rep.$vues['erreur']);
@ -70,13 +81,13 @@ class CtrlUtilisateur {
} 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']);
}
@ -85,7 +96,6 @@ class CtrlUtilisateur {
exit(0);
}//fin constructeur
function SeDeconnecter(array $dVueErreur){
global $rep,$vues;
MdlUtilisateur::déconnexion();
@ -97,33 +107,49 @@ 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']);
}
}
function ConsulterListePrive(array $dVueErreur) {
global $rep,$vues;
$listesPrive = MdlUtilisateur::RecupererListePrive();
$taches = MdlVisiteur::RecupererTache();
$taches = MdlUtilisateur::RecupererTache();
$action=NULL;
require ($rep.$vues['listPrive']);
}
function SupprimerTachePrive(array $dVueErreur){
global $rep,$vues;
$tache = MdlVisiteur::SupprimerTache();
$tache = MdlUtilisateur::SupprimerTache();
$this->ConsulterListePrive($dVueErreur);
}
function SupprimerListePrive(array $dVueErreur){
global $rep,$vues;
$liste = MdlVisiteur::SupprimerListe();
$liste = MdlUtilisateur::SupprimerListe();
$this->ConsulterListePrive($dVueErreur);
}
@ -131,14 +157,14 @@ class CtrlUtilisateur {
public function AjouterTachePrive(array $dVueErreur){
global $rep,$vues;
try{
$tache = MdlVisiteur::AjouterTache($dVueErreur);
$tache = MdlUtilisateur::AjouterTache($dVueErreur);
$this->ConsulterListePrive($dVueErreur);
}
catch (Exception $e)
{
$ErreurLog=$e->getMessage();
$listesPrive= MdlUtilisateur::RecupererListePrive();
$taches = MdlVisiteur::RecupererTache();
$taches = MdlUtilisateur::RecupererTache();
$action=NULL;
require ($rep.$vues['listPrive']);
}
@ -148,24 +174,23 @@ class CtrlUtilisateur {
public function ModifierListePrive(array $dVueErreur){
global $rep,$vues;
try{
$tache = MdlVisiteur::ModifierListe($dVueErreurs);
$tache = MdlUtilisateur::ModifierListe($dVueErreur);
$this->ConsulterListePrive($dVueErreur);
}
catch (Exception $e)
{
$ErreurLog=$e->getMessage();
$listesPrive= MdlUtilisateur::RecupererListePrive();
$taches = MdlVisiteur::RecupererTache();
$taches = MdlUtilisateur::RecupererTache();
$action=NULL;
require ($rep.$vues['listPublic']);
}
}
public function checkPrive()
public function checkPrive(array $dVueErreur)
{
global $rep,$vues;
$tache = MdlVisiteur::check();
$tache = MdlUtilisateur::check();
$this->ConsulterListePrive($dVueErreur);
}
@ -180,13 +205,23 @@ class CtrlUtilisateur {
{
$ErreurLog=$e->getMessage();
$listes = MdlUtilisateur::RecupererListePrive();
$taches = MdlVisiteur::RecupererTache();
$taches = MdlUtilisateur::RecupererTache();
$action=NULL;
require ($rep.$vues['listPrive']);
}
}
public function listePrécédente(array $dVueErreur){
if($_SESSION['pageUser'] > 1){
$_SESSION['pageUser']=$_SESSION['pageUser']-1;
}
$this->ConsulterListePrive($dVueErreur);
}
public function listeSuivante(array $dVueErreur){
$_SESSION['pageUser']=$_SESSION['pageUser']+1;
$this->ConsulterListePrive($dVueErreur);
}
}//fin class

@ -60,9 +60,17 @@ class CtrlVisiteur {
case "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,24 +153,16 @@ 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(array $dVueErreur){
global $rep,$vues;
try{
@ -194,7 +194,6 @@ class CtrlVisiteur {
$action=NULL;
require ($rep.$vues['listPublic']);
}
}
public function ModifierListe(array $dVueErreur){
@ -214,16 +213,25 @@ class CtrlVisiteur {
}
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($_SESSION['page'] > 1){
$_SESSION['page']=$_SESSION['page']-1;
}
$this->ConsulterListePublic($dVueErreur);
}
public function listeSuivante(array $dVueErreur){
$_SESSION['page']=$_SESSION['page']+1;
$this->ConsulterListePublic($dVueErreur);
}
}//fin class
?>

@ -1,14 +1,22 @@
<?php
class FrontControleur {
function __construct(){
global $rep,$vues;
session_start();
if(!isset($_SESSION["pageUser"])){
$_SESSION['pageUser']=1;
}
if(!isset($_SESSION["page"])){
$_SESSION['page']=1;
}
try {
$string_actor=' ';
$listeActions=array(
'Utilisateur' => array('logout','redirectionProfil','supprimerCompte', 'listePrive','AjouterListePrive', 'SupprimerListePrive', 'AjouterTachePrive', 'ModifierListePrive', 'SupprimerTachePrive'),
'Admin' => array()
'Utilisateur' => array('logout','redirectionProfil','pageSuivantePrive','pagePrécédentePrive','supprimerCompte','modifMdp' ,'listePrive','AjouterListePrive', 'checkPrive', 'SupprimerListePrive', 'AjouterTachePrive', 'ModifierListePrive', 'SupprimerTachePrive'),
'Admin' => array('redirectionVueUtilisateur','SupprimerUtilisateur')
);
//On récupère l'action

@ -7,12 +7,6 @@ class MdlAdmin
}
public function deconnexion(){
session_unset();
session_destroy();
$_SESSION = array();
}
public function isConnected(){
if(isset($_SESSION['id']) && isset($_SESSION['role']) && $_SESSION['role']=='admin') {
$id=Validation::cleanInt($_SESSION['id']);
@ -24,9 +18,15 @@ class MdlAdmin
}
else return null;
}
public function recupererUtilisateur(){
$userGtw = new UtilisateurGateway();
return $userGtw->getUtilisateurs();
}
public function supprimerUtilisateur(){
$userGtw = new UtilisateurGateway();
$userGtw->SupprimerUtilisateur($_GET['idUser']);
}
}

@ -3,66 +3,156 @@
class MdlUtilisateur
{
public function __construct(){
public function __construct(){
}
}
public function connection(){
$gtw=new UtilisateurGateway();
$mail=Validation::cleanMail($_POST['mail']);
$mdp=$_POST['password'];
$gtw=new UtilisateurGateway();
$mail=Validation::cleanMail($_POST['mail']);
$mdp=$_POST['password'];
$verif_pass=$gtw->getCredentials($mail);
if(password_verify($mdp,$verif_pass)){
if(password_verify($mdp,$verif_pass)){
$userCurrent=$gtw->RechercheUtilisateurViaEmail($mail);
$_SESSION['role']='user';
$_SESSION['id']=$userCurrent->getId();
if($gtw->existeAdmin($userCurrent->getId())){
$_SESSION['role']='admin';
}
else{
$_SESSION['role']='user';
}
$_SESSION['id']=$userCurrent->getId();
$_SESSION['nom']=$userCurrent->getNom();
$_SESSION['prenom']=$userCurrent->getPrenom();
$_SESSION['pseudo']=$userCurrent->getPseudo();
$_SESSION['email']=$userCurrent->getMail();
return $userCurrent;
}
else throw new Exception('Mot de passe incorrect*');
}
}
else throw new Exception('Mot de passe incorrect*');
}
public function isConnected(){
if(isset($_SESSION['id']) && isset($_SESSION['role'])) {
$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 static function recupererNombreDeListe(){
$listeGtw = new ListeGateway();
$id = Validation::cleanInt($_SESSION['id']);
return $listeGtw->CountListe(intval($id));
}
public function ModifierListe(&$dVueErreur){
$userGtw = new ListeGateway();
$id = $_POST['idListe'];
$nom = Validation::cleanText($_POST['nom-modif-liste']);
$description = Validation::cleanText($_POST['description-modif-liste']);
if($nom == NULL && $description==null){
return null;
}
if($description == NULL){
$userGtw->EditerNom($id, $nom);
}
else if($nom == NULL){
$userGtw->EditerDescription($id, $description);
}
else{
$userGtw->Editer($id, $nom, $description);
}
}
public function suppressionUtilisateur(){
public static function suppressionUtilisateur(){
$userGtw = new UtilisateurGateway();
$id=Validation::cleanInt($_SESSION['id']);
$userGtw->SupprimerUtilisateur(intval($id));
MdlUtilisateur::déconnexion();
}
public function AjouterListePrive(&$dVueErreur){
$taskGtw = new ListeGateway();
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");
}
public static function AjouterListePrive(&$dVueErreur){
$listGtw = new ListeGateway();
$nom=$_POST['nom-ajout-liste'];
$description=$_POST['description-ajout-liste'];
$idCreateur =Validation::cleanInt($_SESSION['id']);
Validation::val_form_add($nom,$description,$dVueErreur);
$taskGtw->Ajouter($nom, $description,0, $idCreateur);
$listGtw->Ajouter($nom, $description,0, $idCreateur);
}
public static function RecupererListePrive(){
$userGtw = new ListeGateway();
return $userGtw->getListePrive(0,10);
$listeGtw = new ListeGateway();
if(isset($_SESSION["pageUser"]))
return $listeGtw->getListePrive(($_SESSION["pageUser"]-1)*5,5);
else
return $listeGtw->getListePrive(1,10);
}
public static function RecupererTache(){
$taskGtw = new TacheGateway();
return $taskGtw->getTache();
}
public static function SupprimerListe(){
$listeGtw = new ListeGateway();
$taskGtw = new TacheGateway();
$id = $_GET['idListe'];
$taskGtw->SupprimerViaListe($id);
$listeGtw->Supprimer($id);
}
public static function check(){
$taskGtw = new TacheGateway();
$id = $_POST['idTache'];
$taskGtw->isDone($id);
}
public static function SupprimerTache(){
$taskGtw = new TacheGateway();
$id = $_GET['idTache'];
$taskGtw->Supprimer($id);
}
public function AjouterTache(&$dVueErreur){
$taskGtw = new TacheGateway();
$id = $_POST['idListe'];
$nom = $_POST['nom-ajout'];
$description = $_POST['description-ajout'];
Validation::val_form_add($nom,$description,$dVueErreur);
$taskGtw->AjouterTache($nom, $description,false,$id);
}
}

@ -3,11 +3,11 @@
class MdlVisiteur
{
public function __construct(){
public function __construct(){
}
}
public static function CreerUtilisateur(&$dVueErreur){
public static function CreerUtilisateur(&$dVueErreur){
$userGtw = new UtilisateurGateway();
Validation::val_form_user($_POST["nom-Form"],$_POST["prenom-Form"],$_POST["pseudo-Form"],$_POST["password"],$_POST["mail"],$dVueErreur);
$userGtw->isExisteViaMail($_POST["mail"]);
@ -17,27 +17,30 @@ class MdlVisiteur
}
public static function RecupererListePublic(){
$userGtw = new ListeGateway();
return $userGtw->getListePublic(0,10);
$listGtw = new ListeGateway();
if(isset($_SESSION["page"]))
return $listGtw->getListePublic(($_SESSION["page"]-1)*5,5);
else
return $listGtw->getListePublic(1,10);
}
public static function RecupererTache(){
$userGtw = new TacheGateway();
return $userGtw->getTache();
$taskGtw = new TacheGateway();
return $taskGtw->getTache();
}
public static function SupprimerTache(){
$userGtw = new TacheGateway();
$taskGtw = new TacheGateway();
$id = $_GET['idTache'];
$userGtw->Supprimer($id);
$taskGtw->Supprimer($id);
}
public static function SupprimerListe(){
$userGtw = new ListeGateway();
$listGtw = new ListeGateway();
$taskGtw = new TacheGateway();
$id = $_GET['idListe'];
$taskGtw->SupprimerViaListe($id);
$userGtw->Supprimer($id);
$listGtw->Supprimer($id);
}
public function AjouterTache(&$dVueErreur){
@ -50,34 +53,38 @@ class MdlVisiteur
}
public function ModifierListe(&$dVueErreur){
$userGtw = new ListeGateway();
$listGtw = new ListeGateway();
$id = $_POST['idListe'];
$nom = Validation::cleanText($_POST['nom-modif-liste']);
$description = Validation::cleanText($_POST['description-modif-liste']);
if($nom == NULL && $description==null){
return null;
}
if($description == NULL){
$userGtw->EditerNom($id, $nom);
$listGtw->EditerNom($id, $nom);
}
else if($nom == NULL){
$userGtw->EditerDescription($id, $description);
$listGtw->EditerDescription($id, $description);
}
else{
$userGtw->Editer($id, $nom, $description);
$listGtw->Editer($id, $nom, $description);
}
}
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, null);
$listGtw->Ajouter($nom, $description,1, 1);
}
public function check(){
public static function check(){
$taskGtw = new TacheGateway();
$id = $_POST['idTache'];
$id = Validation::cleanInt($_POST['idTache']);
$taskGtw->isDone($id);
}
}

@ -1,35 +1,40 @@
<?php
class ListeGateway{
private $con;
private $con;
public function __construct(){
public function __construct(){
global $dsn,$user,$pass;
$this->con=new Connection($dsn,$user,$pass);
}
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(
'nom' => array($nom, PDO::PARAM_STR),
'description' => array($description, PDO::PARAM_STR),
'estPublic' => array($estPublic, PDO::PARAM_INT),
'createur' => array($createur, PDO::PARAM_STR),
));
'nom' => array($nom, PDO::PARAM_STR),
'description' => array($description, PDO::PARAM_STR),
'estPublic' => array($estPublic, PDO::PARAM_INT),
'createur' => array($createur, PDO::PARAM_STR),
));
}
public function Editer(string $id, string $nom, string $description){
$query='UPDATE ToDoList_Liste SET nom=:nom, description=:description WHERE id=:id;';
$this->con->executeQuery($query, array(
'nom' => array($nom, PDO::PARAM_STR),
'description' => array($description, PDO::PARAM_STR),
'id' => array($id,PDO::PARAM_INT))
$query='UPDATE ToDoList_Liste SET nom=:nom, description=:description WHERE id=:id;';
$this->con->executeQuery($query, array(
'nom' => array($nom, PDO::PARAM_STR),
'id' => array($id,PDO::PARAM_INT),
'description' => array($description, PDO::PARAM_STR))
);
}
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;';
$this->con->executeQuery($query, array('nom' => array($nom, PDO::PARAM_STR),'id' => array($id, PDO::PARAM_INT)));
}
public function EditerDescription(string $id, string $description){
@ -42,24 +47,16 @@ class ListeGateway{
$this->con->executeQuery($query,array('id' => array($id, PDO::PARAM_INT)));
}
public function getListe(int $offset, int $limit){
$query = "SELECT * FROM ToDoList_Liste LIMITS $offset,$limit";
$this->con->executeQuery($query);
$listes=$this->con->getResults();
return $listes;
}
public function getListePublic($offset,$limit){
$query = "SELECT * FROM ToDoList_Liste WHERE estPublic LIMIT $offset, $limit";
$this->con->executeQuery($query);
$listes = [];
foreach ($this->con->getResults() as $liste) {
$listes[] = new Liste($liste["id"],$liste["nom"],$liste["description"],$liste["dateCreation"],$liste["estPublic"],$liste["idUtilisateur"]);
}
return $listes;
foreach ($this->con->getResults() as $liste) {
$listes[] = new Liste($liste["id"],$liste["nom"],$liste["description"],$liste["dateCreation"],$liste["estPublic"],$liste["idUtilisateur"]);
}
return $listes;
}
public function getListePrive($offset,$limit){
public function getListePrive($offset,$limit){
$query = "SELECT * FROM ToDoList_Liste WHERE !estPublic LIMIT $offset, $limit";
$this->con->executeQuery($query);
$listes = [];

@ -1,7 +1,7 @@
<?php
class TacheGateway{
private $con;
public function __construct(){
private $con;
public function __construct(){
global $dsn,$user,$pass;
$this->con=new Connection($dsn,$user,$pass);
}
@ -17,8 +17,8 @@ class TacheGateway{
}
public function Editer(string $id, string $nom, string $description){
$query='UPDATE ToDoList_Tache SET nom=:nom, description =:description WHERE id=:id;';
$this->con->executeQuery($query, array('nom' => array($nom, PDO::PARAM_STR), 'description' => array($description, PDO::PARAM_STR), 'id' => array($id, PDO::PARAM_INT)));
$query='UPDATE ToDoList_Tache SET nom=:nom, description =:description WHERE id=:id;';
$this->con->executeQuery($query, array('nom' => array($nom, PDO::PARAM_STR), 'description' => array($description, PDO::PARAM_STR), 'id' => array($id, PDO::PARAM_INT)));
}
public function EditerNom(string $id, string $nom){

@ -23,6 +23,28 @@ class UtilisateurGateway{
'id' => array($id, PDO::PARAM_INT)));
}
public function existeAdmin(int $id){
$query="SELECT * FROM ToDoList_Admin WHERE idAdmin=:id";
$this->con->executeQuery($query, array(
'id' => array($id, PDO::PARAM_INT)));
$results=$this->con->getResults();
if($results!=null){
return true;
}else{
return false;
}
}
public function getUtilisateurs(){
$query = "SELECT * FROM ToDoList_Utilisateur";
$this->con->executeQuery($query);
$listesUsers = [];
foreach ($this->con->getResults() as $user) {
$listesUsers[] = new Utilisateur($user["id"],$user["nom"],$user["prenom"],$user["pseudo"],$user["email"]);
}
return $listesUsers;
}
// Vérifie que le mail n'existe pas
public function isExisteViaMail($mail){
$query="SELECT * FROM ToDoList_Utilisateur WHERE email=:mail";

Binary file not shown.

Before

Width:  |  Height:  |  Size: 247 B

@ -26,7 +26,6 @@ body::before {
z-index: -1;
}
/* Model */
.model {

@ -16,12 +16,20 @@
border-bottom: 1px solid #fff;
}
</style>
<div class="custom-control custon-switch mr-5">
<input type="checkbox" class="custom-control-input" id="selector">
<label class="custom-control-label" for="selector">Dark Mode</label>
</input>
</div>
<ul class="navbar-nav ml-auto">
<?php
if(isset($_SESSION['id'])){ ?>
<h5><a class="nav-item nav-link text-light" href="VueListePublic">Listes Publiques</a></h5>
<h5><a class="nav-item nav-link text-light" href="listePrive">Mes listes</a></h5>
<h5><a class="nav-item nav-link text-light" href="MonProfil">Mon Profil</a></h5>
<?php if($_SESSION['role']=='admin'){?>
<h5><a class="nav-item nav-link text-warning" href="users">Les utilisateurs</a></h5>
<?php } ?>
<h5><button class="nav-item btn btn-outline-light" onclick="myFunction()">Se déconnecter</button></h5>
<script>

@ -1,13 +1,14 @@
<!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>
<!-- CSS only -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<link rel="stylesheet" href="https:/stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="./vue/css/task.css">
<!-- JavaScript Bundle with Popper -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
@ -72,6 +73,19 @@
$done = 0;
$total = 0;
?>
<!-- Modifier couleur -->
<script>
$(document).ready(function(){
$("#selector").change(function(){
$("body").toggleClass("bg-secondary");
$("nav").toggleClass("navbar-dark bg-dark");
$(".custom-control-label").toggleClass("text-white");
});
});
</script>
<!-- Affichage des listesPrive -->
@ -98,7 +112,7 @@
</span>
</p>
<p><span class="h5 me-2"><?= $liste->getDescription()?></span>
<p class="text-muted pb-2"><?= $liste->getDateCreation()?> : <?= $liste->getIdUtilisateur()?></p>
<p class="text-muted pb-2"><?= $liste->getDateCreation()?> by <strong><?= $_SESSION['pseudo'] ?></strong> </p>
</div>
@ -198,17 +212,17 @@
}
$total = $total + 1;
?>
<li class="list-group-item border-0 d-flex align-items-center ps-0">
<form name="action" action="index.php?action=checkPrive" method="POST">
<input class="form-check-input me-3" type="checkbox" onChange="submit();"
<li class="list-group-item border-0 d-flex align-items-center ps-0">
<form name="action" action="checkPrive" method="POST">
<input class="form-check-input me-3" id="task-<?= $tache->getId() ?>" type="checkbox" onChange="submit();"
<?php if($tache->getEstValide() == 1) echo "checked" ?>>
<label for="task-<?= $tache->getId() ?>"> <?= $tache->getNom() ?> : <?= $tache->getDescription() ?></label>
<input type="hidden" name="idTache" value="<?= $tache->getId() ?>" >
</form>
<?= $tache->getNom() ?> : <?= $tache->getDescription() ?>
<a href="index.php?action=SupprimerTachePrive&idTache=<?= $tache->getId() ?>">
<button class="btn btn-default">
<img src="./vue/Images/trash.png" width="18" />
<img src="./vue/Images/trash.png" width="20" />
</button>
</a>
</li>
@ -238,19 +252,22 @@
?>
<nav aria-label="Page navigation example">
<center>
<p>Page n°<?php echo $_SESSION['pageUser'] ?></p>
</center>
<ul class="pagination justify-content-center">
<li class="page-item">
<a class="page-link" href="#">Previous</a>
</li>
<a class="page-link" href="previousPagePrive">Previous</a>
</li>
<li class="page-item">
<a class="page-link" href="#">Next</a>
<a class="page-link" href="nextPagePrive">Next</a>
</li>
</ul>
</nav>
</body>
<!-- Footer -->
<footer class="text-center text-lg-start bg-light ">
<footer class="text-center text-lg-start bg-light sticky-bottom">
<br>
<!-- Section: Links -->
<section class="">
@ -336,4 +353,4 @@
</html>
</html>

@ -1,16 +1,23 @@
<!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>
<!-- CSS only -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<link rel="stylesheet" href="https:/stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<!-- JavaScript Bundle with Popper -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="./vue/css/task.css">
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css">
<!-- jQuery library -->
<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.1/dist/jquery.slim.min.js"></script>
<!-- Popper JS -->
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
<!-- Latest compiled JavaScript -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body style="-webkit-user-select: none; /* Safari */
@ -71,6 +78,19 @@
$total = 0;
?>
<!-- Modifier couleur -->
<script>
$(document).ready(function(){
$("#selector").change(function(){
$("body").toggleClass("bg-secondary");
$("nav").toggleClass("navbar-dark bg-dark");
$(".custom-control-label").toggleClass("text-white");
});
});
</script>
<!-- Affichage des listes -->
<div class="container py-2 h-100">
@ -113,24 +133,14 @@
</button>
</div>
<div class="modal-body row">
<form class="col" method="POST">
<form class="col" method="POST" >
<div class="form-group">
<?php
if(isset($dVueErreur['nom'])){?>
<center><p class="text-danger"> <?php echo $dVueErreur['nom']?></p></center><?php
}
?>
<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">
<?php
if(isset($dVueErreur['description'])){?>
<center><p class="text-danger"> <?php echo $dVueErreur['description']?></p></center><?php
}
?>
<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">
@ -157,20 +167,10 @@
<div class="modal-body row">
<form class="col" method="POST">
<div class="form-group">
<?php
if(isset($dVueErreur['nom'])){?>
<center><p class="text-danger"> <?php echo $dVueErreur['nom']?></p></center><?php
}
?>
<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() ?>">
</div>
<div class="form-group">
<?php
if(isset($dVueErreur['description'])){?>
<center><p class="text-danger"> <?php echo $dVueErreur['description']?></p></center><?php
}
?>
<label for="description" class="form-control-label">Nouvelle description</label>
<input type="text" class="form-control" name="description-modif-liste" id="description" placeholder="<?= $liste->getDescription() ?>">
</div>
@ -196,17 +196,18 @@
}
$total = $total + 1;
?>
<li class="list-group-item border-0 d-flex align-items-center ps-0">
<form name="action" action="index.php?action=check" method="POST">
<input class="form-check-input me-3" type="checkbox" onChange="submit();"
<form name="action" action="check" method="POST">
<input class="form-check-input me-3" id="task-<?= $tache->getId() ?>" type="checkbox" onChange="submit();"
<?php if($tache->getEstValide() == 1) echo "checked" ?>>
<label for="task-<?= $tache->getId() ?>"> <?= $tache->getNom() ?> : <?= $tache->getDescription() ?></label>
<input type="hidden" name="idTache" value="<?= $tache->getId() ?>" >
</form>
<?= $tache->getNom() ?> : <?= $tache->getDescription() ?>
<a href="index.php?action=SupprimerTache&idTache=<?= $tache->getId() ?>">
<button class="btn btn-default">
<img src="./vue/Images/trash.png" width="18" />
<img src="./vue/Images/trash.png" width="20" />
</button>
</a>
</li>
@ -234,20 +235,23 @@
}
?>
<nav aria-label="Page navigation example">
<ul class="pagination justify-content-center">
<div aria-label="Page navigation example" class="NavPage">
<center>
<p>Page n°<?php echo $_SESSION['page'] ?></p>
</center>
<ul class="pagination justify-content-center ">
<li class="page-item">
<a class="page-link" href="#">Previous</a>
</li>
<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>
</div>
</body>
<!-- Footer -->
<footer class="text-center text-lg-start bg-light ">
<footer class="text-center text-lg-start bg-light sticky-bottom">
<br>
<!-- Section: Links -->
<section class="">

@ -15,7 +15,6 @@
</head>
<body>
<div class="model">
<h1>Un problème est survenue !</h1>
<?php
@ -27,6 +26,5 @@
?>
<a href="VueListePublic">Revenir</a>
</div>
</body>
</body>
</html>

@ -1,87 +1,87 @@
<!DOCTYPE html>
<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">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- CSS only -->
<link rel="stylesheet" href="./vue/css/style.css">
<link rel="stylesheet" href="./vue/css/reset.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
</head>
<body>
<div class="main">
<div class="model">
<div class="main-logo">
<img src="./vue/Images/Logo.png" alt="logo">
</div>
<div class="login-card-header">
<h1>Inscrivez-vous</h1>
</div>
<?php
if(isset($ErreurLog)){?>
<center><p class="ErreurText"> <?php echo $ErreurLog?></p></center><?php
}
?>
<form method="POST" class="login-card-form">
<div class="row">
<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">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- CSS only -->
<link rel="stylesheet" href="./vue/css/style.css">
<link rel="stylesheet" href="./vue/css/reset.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
</head>
<body>
<div class="main">
<div class="model">
<div class="main-logo">
<img src="./vue/Images/Logo.png" alt="logo">
</div>
<div class="login-card-header">
<h1>Inscrivez-vous</h1>
</div>
<?php
if(isset($ErreurLog)){?>
<center><p class="ErreurText"> <?php echo $ErreurLog?></p></center><?php
}
?>
<form method="POST" class="login-card-form">
<div class="row">
<div class="col-md-6 mb-4">
<?php
if(isset($dVueErreur['nom'])){?>
<center><p class="ErreurText"> <?php echo $dVueErreur['nom']?></p></center><?php
}
?>
<div>
<input type="text" name="nom-Form" placeholder="Nom" required autofocus>
</div>
</div>
<div class="col-md-6 mb-4">
<?php
if(isset($dVueErreur['nom'])){?>
<center><p class="ErreurText"> <?php echo $dVueErreur['nom']?></p></center><?php
if(isset($dVueErreur['prenom'])){?>
<center><p class="ErreurText"> <?php echo $dVueErreur['prenom']?></p></center><?php
}
?>
<div>
<input type="text" name="nom-Form" placeholder="Nom" required autofocus>
</div>
</div>
<div class="col-md-6 mb-4">
<?php
if(isset($dVueErreur['prenom'])){?>
<center><p class="ErreurText"> <?php echo $dVueErreur['prenom']?></p></center><?php
}
?>
<div>
<input type="text" name="prenom-Form" placeholder="Prenom" required autofocus>
</div>
<input type="text" name="prenom-Form" placeholder="Prenom" required autofocus>
</div>
</div>
<div class="form-item">
<?php
if(isset($dVueErreur['pseudo'])){?>
<center><p class="ErreurText"> <?php echo $dVueErreur['pseudo']?></p></center><?php
}
?>
<input type="text" name="pseudo-Form" placeholder="Pseudo" required autofocus>
</div>
</div>
<div class="form-item">
<?php
if(isset($dVueErreur['pseudo'])){?>
<center><p class="ErreurText"> <?php echo $dVueErreur['pseudo']?></p></center><?php
}
?>
<input type="text" name="pseudo-Form" placeholder="Pseudo" required autofocus>
</div>
<div class="form-item">
<?php
if(isset($dVueErreur['mail'])){?>
<center><p class="ErreurText"> <?php echo $dVueErreur['mail']?></p></center><?php
}
?>
<input type="text" name="mail" placeholder="Mail" required autofocus>
</div>
<div class="form-item">
<?php
if(isset($dVueErreur['password'])){?>
<center><p class="ErreurText"> <?php echo $dVueErreur['password']?></p></center><?php
}
?>
<input type="password" name="password" placeholder="Password" required >
</div>
<button type="submit" class="btn btn-primary">S'inscrire</button>
<!-- action !!!!!!!!!! -->
<input type="hidden" name="action" value="validationFormulaire">
<p class="text-center text-muted mt-5 mb-0">Déjà un compte?
<a href="login" class="fw-bold text-body"><u>Connectez-vous</u></a></p>
</form>
</div>
<div class="form-item">
<?php
if(isset($dVueErreur['mail'])){?>
<center><p class="ErreurText"> <?php echo $dVueErreur['mail']?></p></center><?php
}
?>
<input type="text" name="mail" placeholder="Mail" required autofocus>
</div>
<div class="form-item">
<?php
if(isset($dVueErreur['password'])){?>
<center><p class="ErreurText"> <?php echo $dVueErreur['password']?></p></center><?php
}
?>
<input type="password" name="password" placeholder="Password" required >
</div>
<button type="submit" class="btn btn-primary">S'inscrire</button>
<!-- action !!!!!!!!!! -->
<input type="hidden" name="action" value="validationFormulaire">
<p class="text-center text-muted mt-5 mb-0">Déjà un compte?
<a href="login" class="fw-bold text-body"><u>Connectez-vous</u></a></p>
</form>
</div>
</body>
</div>
</body>
</html>

@ -0,0 +1,144 @@
<!DOCTYPE html>
<html lang="en">
<head>
<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>
<!-- CSS only -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<link rel="stylesheet" href="https:/stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="./vue/css/task.css">
<!-- JavaScript Bundle with Popper -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</head>
<body style="-webkit-user-select: none; /* Safari */
-ms-user-select: none; /* IE 10 and IE 11 */
user-select: none;">
<?php require($rep.$vues['NavBar']); ?>
<br>
<br>
<br>
<section class="vh-100" style="background-color: white;">
<div class="container py-5 h-100">
<div class="row d-flex justify-content-center align-items-center h-100">
<div class="col col-xl-10">
<div class="card" style="border-radius: 15px;">
<div class="card-body p-5">
<ul class="list-group mb-0">
<?php
foreach($users as $user){
?>
<li
class="list-group-item d-flex justify-content-between align-items-center border-start-0 border-top-0 border-end-0 border-bottom rounded-0 mb-2">
<div class="d-flex align-items-center">
<?= $user->getNom() ?> : <?= $user->getPrenom() ?>
</div>
<a href="index.php?action=SupprimerUtilisateur&idUser=<?= $user->getId() ?>">
<button class="btn btn-default">
<img src="./vue/Images/trash.png" width="20" />
</button>
</a>
</li>
<?php } ?>
</ul>
</div>
</div>
</div>
</div>
</div>
</section>
</body>
<!-- Footer -->
<footer class="text-center text-lg-start bg-light ">
<br>
<!-- Section: Links -->
<section class="">
<div class="container text-center text-md-start mt-5">
<!-- Grid row -->
<div class="row mt-3">
<!-- Grid column -->
<div class="col-md-3 col-lg-4 col-xl-3 mx-auto mb-4">
<!-- Content -->
<h6 class="text-uppercase fw-bold mb-4">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-wallet2" viewBox="0 0 16 16">
<path d="M12.136.326A1.5 1.5 0 0 1 14 1.78V3h.5A1.5 1.5 0 0 1 16 4.5v9a1.5 1.5 0 0 1-1.5 1.5h-13A1.5 1.5 0 0 1 0 13.5v-9a1.5 1.5 0 0 1 1.432-1.499L12.136.326zM5.562 3H13V1.78a.5.5 0 0 0-.621-.484L5.562 3zM1.5 4a.5.5 0 0 0-.5.5v9a.5.5 0 0 0 .5.5h13a.5.5 0 0 0 .5-.5v-9a.5.5 0 0 0-.5-.5h-13z"/>
</svg> Project
</h6>
<p>
2nd year project, consisting of making a To do List in php
, which contains visitors or users, who can add,
delete, see tasks...
</p>
</div>
<!-- Grid column -->
<!-- Grid column -->
<div class="col-md-2 col-lg-2 col-xl-2 mx-auto mb-4">
<!-- Links -->
<h6 class="text-uppercase fw-bold mb-4">
Products
</h6>
<p>
<img src="https://img.shields.io/badge/HTML-000?style=for-the-badge&logo=html5&logoColor=orange&color=f8f9fa">
</img>
</p>
<p>
<img src="https://img.shields.io/badge/CSS-000?style=for-the-badge&logo=Css3&logoColor=blue&color=f8f9fa">
</img>
</p>
<p>
<img src="https://img.shields.io/badge/PHP-000?style=for-the-badge&logo=php&logoColor=purple&color=f8f9fa">
</img>
</p>
<p>
<img src="https://img.shields.io/badge/JavaScript-000?style=for-the-badge&logo=javascript&logoColor=yellow&color=f8f9fa">
</img>
</p>
</div>
<!-- Grid column -->
<!-- Grid column -->
<div class="col-md-4 col-lg-3 col-xl-3 mx-auto mb-md-0 mb-4">
<!-- Links -->
<h6 class="text-uppercase fw-bold mb-4">Contact</h6>
<p>
<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" fill="currentColor" class="bi bi-envelope" viewBox="0 0 16 16">
<path d="M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V4Zm2-1a1 1 0 0 0-1 1v.217l7 4.2 7-4.2V4a1 1 0 0 0-1-1H2Zm13 2.383-4.708 2.825L15 11.105V5.383Zm-.034 6.876-5.64-3.471L8 9.583l-1.326-.795-5.64 3.47A1 1 0 0 0 2 13h12a1 1 0 0 0 .966-.741ZM1 11.105l4.708-2.897L1 5.383v5.722Z"/>
</svg>
emre.kartal@etu.uca.fr
</p>
<p>
<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" fill="currentColor" class="bi bi-envelope" viewBox="0 0 16 16">
<path d="M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V4Zm2-1a1 1 0 0 0-1 1v.217l7 4.2 7-4.2V4a1 1 0 0 0-1-1H2Zm13 2.383-4.708 2.825L15 11.105V5.383Zm-.034 6.876-5.64-3.471L8 9.583l-1.326-.795-5.64 3.47A1 1 0 0 0 2 13h12a1 1 0 0 0 .966-.741ZM1 11.105l4.708-2.897L1 5.383v5.722Z"/>
</svg>
rayhan.hassou@etu.uca.fr
</p>
<p><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-pin" viewBox="0 0 16 16">
<path d="M4.146.146A.5.5 0 0 1 4.5 0h7a.5.5 0 0 1 .5.5c0 .68-.342 1.174-.646 1.479-.126.125-.25.224-.354.298v4.431l.078.048c.203.127.476.314.751.555C12.36 7.775 13 8.527 13 9.5a.5.5 0 0 1-.5.5h-4v4.5c0 .276-.224 1.5-.5 1.5s-.5-1.224-.5-1.5V10h-4a.5.5 0 0 1-.5-.5c0-.973.64-1.725 1.17-2.189A5.921 5.921 0 0 1 5 6.708V2.277a2.77 2.77 0 0 1-.354-.298C4.342 1.674 4 1.179 4 .5a.5.5 0 0 1 .146-.354zm1.58 1.408-.002-.001.002.001zm-.002-.001.002.001A.5.5 0 0 1 6 2v5a.5.5 0 0 1-.276.447h-.002l-.012.007-.054.03a4.922 4.922 0 0 0-.827.58c-.318.278-.585.596-.725.936h7.792c-.14-.34-.407-.658-.725-.936a4.915 4.915 0 0 0-.881-.61l-.012-.006h-.002A.5.5 0 0 1 10 7V2a.5.5 0 0 1 .295-.458 1.775 1.775 0 0 0 .351-.271c.08-.08.155-.17.214-.271H5.14c.06.1.133.191.214.271a1.78 1.78 0 0 0 .37.282z"/>
</svg> Groupe 4</p>
</div>
<!-- Grid column -->
</div>
<!-- Grid row -->
</div>
</section>
<!-- Section: Links -->
<!-- Copyright -->
<div class="text-center p-4" style="background-color: rgba(0, 0, 0, 0.05);">
© 2021 Copyright:
<a class="text-reset fw-bold" href="#">ToDoList.com</a>
</div>
<!-- Copyright -->
</footer>
</html>

@ -12,7 +12,7 @@
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</head>
<body>
<section style="background-color: white;">
<div class="container py-5">

Loading…
Cancel
Save