Compare commits
49 Commits
rayhan_gat
...
master
Before Width: | Height: | Size: 7.7 KiB After Width: | Height: | Size: 7.7 KiB |
@ -0,0 +1,235 @@
|
||||
-- phpMyAdmin SQL Dump
|
||||
-- version 5.0.4deb2
|
||||
-- https://www.phpmyadmin.net/
|
||||
--
|
||||
-- Hôte : localhost
|
||||
-- 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
|
||||
|
||||
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
|
||||
START TRANSACTION;
|
||||
SET time_zone = "+00:00";
|
||||
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8mb4 */;
|
||||
|
||||
--
|
||||
-- Base de données : `dbemkartal1`
|
||||
--
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Structure de la table `MaTable`
|
||||
--
|
||||
|
||||
CREATE TABLE `MaTable` (
|
||||
`Id` int(11) NOT NULL,
|
||||
`Nom` varchar(40) NOT NULL,
|
||||
`Prenom` varchar(40) NOT NULL,
|
||||
`Aigritude` int(11) NOT NULL,
|
||||
`Age` int(11) NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='J''en ai marre d''être le goat';
|
||||
|
||||
--
|
||||
-- Déchargement des données de la table `MaTable`
|
||||
--
|
||||
|
||||
INSERT INTO `MaTable` (`Id`, `Nom`, `Prenom`, `Aigritude`, `Age`) VALUES
|
||||
(1, 'Kartal', 'Emre', 2, 18),
|
||||
(2, 'Hassou', 'Rayhan', 4, 15),
|
||||
(3, 'Skeleton', 'Armure', 150, 5),
|
||||
(10, 'Khedair', 'Rami', 17, 20);
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Structure de la table `ToDoList_Admin`
|
||||
--
|
||||
|
||||
CREATE TABLE `ToDoList_Admin` (
|
||||
`idAdmin` int(11) NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
--
|
||||
-- Déchargement des données de la table `ToDoList_Admin`
|
||||
--
|
||||
|
||||
INSERT INTO `ToDoList_Admin` (`idAdmin`) VALUES
|
||||
(50),
|
||||
(58);
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Structure de la table `ToDoList_Liste`
|
||||
--
|
||||
|
||||
CREATE TABLE `ToDoList_Liste` (
|
||||
`id` int(11) NOT NULL,
|
||||
`nom` varchar(50) NOT NULL,
|
||||
`description` varchar(200) NOT NULL,
|
||||
`dateCreation` date NOT NULL,
|
||||
`estPublic` tinyint(1) NOT NULL,
|
||||
`idUtilisateur` int(11) DEFAULT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
--
|
||||
-- Déchargement des données de la table `ToDoList_Liste`
|
||||
--
|
||||
|
||||
INSERT INTO `ToDoList_Liste` (`id`, `nom`, `description`, `dateCreation`, `estPublic`, `idUtilisateur`) VALUES
|
||||
(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);
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Structure de la table `ToDoList_Tache`
|
||||
--
|
||||
|
||||
CREATE TABLE `ToDoList_Tache` (
|
||||
`id` int(11) NOT NULL,
|
||||
`nom` varchar(50) NOT NULL,
|
||||
`description` varchar(200) NOT NULL,
|
||||
`dateCreation` date NOT NULL,
|
||||
`estValide` tinyint(1) NOT NULL,
|
||||
`idListe` int(11) NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
--
|
||||
-- Déchargement des données de la table `ToDoList_Tache`
|
||||
--
|
||||
|
||||
INSERT INTO `ToDoList_Tache` (`id`, `nom`, `description`, `dateCreation`, `estValide`, `idListe`) VALUES
|
||||
(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);
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Structure de la table `ToDoList_Utilisateur`
|
||||
--
|
||||
|
||||
CREATE TABLE `ToDoList_Utilisateur` (
|
||||
`id` int(11) NOT NULL,
|
||||
`nom` varchar(50) NOT NULL,
|
||||
`prenom` varchar(50) NOT NULL,
|
||||
`pseudo` varchar(50) NOT NULL,
|
||||
`email` varchar(50) NOT NULL,
|
||||
`motDePasse` varchar(150) NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
--
|
||||
-- Déchargement des données de la table `ToDoList_Utilisateur`
|
||||
--
|
||||
|
||||
INSERT INTO `ToDoList_Utilisateur` (`id`, `nom`, `prenom`, `pseudo`, `email`, `motDePasse`) VALUES
|
||||
(1, 'Kartal', 'Emre', 'Malleo', 'emre.kartal10@etu.uca.fr', '00000'),
|
||||
(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
|
||||
--
|
||||
|
||||
--
|
||||
-- Index pour la table `MaTable`
|
||||
--
|
||||
ALTER TABLE `MaTable`
|
||||
ADD PRIMARY KEY (`Id`);
|
||||
|
||||
--
|
||||
-- Index pour la table `ToDoList_Admin`
|
||||
--
|
||||
ALTER TABLE `ToDoList_Admin`
|
||||
ADD KEY `idAdmin` (`idAdmin`);
|
||||
|
||||
--
|
||||
-- Index pour la table `ToDoList_Liste`
|
||||
--
|
||||
ALTER TABLE `ToDoList_Liste`
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD KEY `ToDoList_Liste_ibfk_1` (`idUtilisateur`);
|
||||
|
||||
--
|
||||
-- Index pour la table `ToDoList_Tache`
|
||||
--
|
||||
ALTER TABLE `ToDoList_Tache`
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD KEY `ToDoList_Tache_ibfk_1` (`idListe`);
|
||||
|
||||
--
|
||||
-- Index pour la table `ToDoList_Utilisateur`
|
||||
--
|
||||
ALTER TABLE `ToDoList_Utilisateur`
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD UNIQUE KEY `email` (`email`),
|
||||
ADD UNIQUE KEY `pseudo` (`pseudo`);
|
||||
|
||||
--
|
||||
-- AUTO_INCREMENT pour les tables déchargées
|
||||
--
|
||||
|
||||
--
|
||||
-- AUTO_INCREMENT pour la table `MaTable`
|
||||
--
|
||||
ALTER TABLE `MaTable`
|
||||
MODIFY `Id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=46;
|
||||
|
||||
--
|
||||
-- AUTO_INCREMENT pour la table `ToDoList_Liste`
|
||||
--
|
||||
ALTER TABLE `ToDoList_Liste`
|
||||
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=152;
|
||||
|
||||
--
|
||||
-- AUTO_INCREMENT pour la table `ToDoList_Utilisateur`
|
||||
--
|
||||
ALTER TABLE `ToDoList_Utilisateur`
|
||||
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=59;
|
||||
|
||||
--
|
||||
-- Contraintes pour les tables déchargées
|
||||
--
|
||||
|
||||
--
|
||||
-- Contraintes pour la table `ToDoList_Admin`
|
||||
--
|
||||
ALTER TABLE `ToDoList_Admin`
|
||||
ADD CONSTRAINT `ToDoList_Admin_ibfk_1` FOREIGN KEY (`idAdmin`) REFERENCES `ToDoList_Utilisateur` (`id`);
|
||||
|
||||
--
|
||||
-- Contraintes pour la table `ToDoList_Liste`
|
||||
--
|
||||
ALTER TABLE `ToDoList_Liste`
|
||||
ADD CONSTRAINT `ToDoList_Liste_ibfk_1` FOREIGN KEY (`idUtilisateur`) REFERENCES `ToDoList_Utilisateur` (`id`) ON DELETE CASCADE;
|
||||
|
||||
--
|
||||
-- Contraintes pour la table `ToDoList_Tache`
|
||||
--
|
||||
ALTER TABLE `ToDoList_Tache`
|
||||
ADD CONSTRAINT `ToDoList_Tache_ibfk_1` FOREIGN KEY (`idListe`) REFERENCES `ToDoList_Liste` (`id`) ON DELETE CASCADE;
|
||||
COMMIT;
|
||||
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
@ -0,0 +1 @@
|
||||
<mxfile host="app.diagrams.net" modified="2022-11-29T17:20:13.880Z" agent="5.0 (Windows)" version="20.6.0" etag="gG6WG0mNFjTJEFq49oK-"><diagram id="m6SvVhZh1tycoRW3iEHN" name="Page-1">7ZvbcpswEIafhst2LDC2cxmTtJ3JoZm6h5neKSCDGoFcIcdOnr4rEGBQ0ubQWL7QjGeCflZC2v2E2cXxgijffhR4lV3whDDPHyVbLzjxfB+h8Qz+KOWuViZTLaSCJtqoExb0nmhxpNU1TUjZM5ScM0lXfTHmRUFi2dOwEHzTN1ty1r/qCqfEEBYxZqb6gyYyq9WZP+30T4SmWXNlNDmqz+S4MdYrKTOc8M2OFJx6QSQ4l/VRvo0IU85r/FL3+/DI2XZighTyKR2WLLj6vYh/Tj9/vQ389Nfl5dnZOz3KLWZrveCvOM6InrG8a9xQbmjOcAGt+ZIXcqHPjKAdZ5Ql5/iOr9U0Sonjm6Y1z7ig92CPGZxCIMBpIXWUg1HPYqF66jEFKcHmqlkbGkgXeNszPMelbGbDGcOrkl5X81MdcyxSWsy5lDzXRpuMSrJY4VjZbABcNRGZN5PUPiFCku2jzkZtCIF9wnMixR2Y6A5t1DX2Lc+bDiI01lq2A1BriDW4aTt2F1s40OF9Rqh9I9SeP2EqSms4SNUB9NcSXKFVDRjALbKKpeA3JOKMC9ALXtNBGRtImNG0gCYjS9VN+ZXCBjvWck6TRI08LyEgtEjPK7OTcad80e5REofuS1btoww6EhhhvuK0kJW7wjl8wIHR6H3ohTDXCNqoa8NHmQsZ8QKmj2kVTQL4bIhCaC64xBJft3D/D1Ie33gmPhqX4Im0BG8FS2DAUsDucSDsG4SJbRDGBggnpIwFXUnKCwfE3oE4sg3ExAQCSxIJgh0RVohAvm0k0NRgAjz0HWKZeFHgHR+Zz5MOizfHIrSNhUmF5wc0OaeldEBYAGJmG4iZAcTDLLhk83nJZjg+uGTzyCWbB3RjmB12stlQ6LJNyyRYzzaRWY906aZNIqynm8gsW7p80yoS9vNN3+WbB4iF9XwTmUXrKuGs7hVkLRwU+4fCes6JzHqlwQEpkmP1qhhaMcNlSeO+dwRfFwlJtCvr7iQx3hsP0jW4BF+LmPxtcrUdpKkpeYGTd5waPuDTRhOEwXflbX+6DzlaX+FKYdhll0HYzy4DfxCrepm6l7/zAnow0Hg0SFOng4FqPxgDVXFvl/0KFMz6wzdJGS0fvju4KsTrqhDh9Il7/+2qEMiVIQ7puwIdeB2iubG5OoRtFKwXInyzELGCJTkabNBgvQjRPDPu0lCSdcIdDfun4QDqD2aieZpjyhwNFmiwXnbwQ4OGCy5P4Lm9LF0hygYS1osO/iEXHXQW/M+iw2Ne3lPVYTLIJsNBsJ5cdUCDgUaDgV5cdYBm9+v92rz7H4jg9A8=</diagram></mxfile>
|
After Width: | Height: | Size: 17 KiB |
@ -1 +1 @@
|
||||
<mxfile host="app.diagrams.net" modified="2022-11-18T08:49:01.889Z" agent="5.0 (X11)" etag="V0TgOB312a1JtrdcmcmG" version="20.4.0" type="device"><diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">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</diagram></mxfile>
|
||||
<mxfile host="app.diagrams.net" modified="2022-11-29T22:01:04.454Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36" etag="p4d9js68z-fKG3dQp_s_" version="20.6.0" type="device"><diagram id="EhPrNy5HpteiR21U6QY4" name="Page-1">7V3bcqO4Fv0a1+nz0C5AXOzH2O65VCVTqXFPz8yjYpSYGgw+gHOZrz/iIgzawhbEQNqtrlSXJUCA1tZmr8WWmKDl7vXnCO+3d6FL/Imhua8TtJoYBtIMY5L+ae5bXqObppnXPEWeW9QdK9bev6So1Irag+eSuLZjEoZ+4u3rlZswCMgmqdXhKApf6rs9hn79rHv8REDFeoN9WPun5ybbvHZmOMf6X4j3tGVn1u15vmWH2c7FncRb7IYvlSr0ZYKWURgm+a/d65L4ae+xfsmP+6lha3lhEQkSqQNstJz/decmm/Wfs8/z3Rdz6X0uWnnG/qG44W9e7CXkEMXFVSdvrCviF2/n44CWFo9hkKyLLRotY997CujvDb0WEtGKZxIlHu3Fm2JDEu5p7Wbr+e4tfgsP6RXHCd78w0qLbRh5/9JmsU836bSCbo6SwiAMu7bHOj2yOHVEYrrPPesGvay6xXFS7LMJfR/vY+8hu+B0lx2OnrxgESZJuGMNhYfAJW5RKtHKCkkU/lPinx5fdBu9S/LaiIdeokzHBwl3JIne6C7sgJlWWAYbG6WpvBwtTbeLum3FysyiDhfG/VQ2Xp7vdzoYcPBEb7g8ITLr50Mzwekcwelo79dOh30KcoATski7LK5aHf1RuddjVWaLLezSAHYJzNH3MlPcJrujxfAwMbv0yWMisMqd57ppc4t4jzde8PQ1tdLVZ/1Yc5sduELHmt+LfkGZySQ4wQ/lMPDxA/HvQzqAvDBtP8r3XexDL0iyzrMWE2uV1UTJMgzoFWMvMxdCrfWFpBYraVuNoxka3FsdxnPWNWs2rhrMbTFFANNbL06IrJ8xlJ/p5mc0xPkZpEn6Gd02uzgagz+hKXm+ERzNDHoauj9vkrT3k/PuJDe+uucwoedIq0J67KOfAb+lTogEAm9S9xoL2l9LbWql/sNY0rJ+LJ91KSdsrvCf2rscD7qI4+Hhv5jnMQHGv9HhSJ+26Ib+v04iis7VYd4XmpYxMpoWQJPe8P3hwfc2JaYLyhEUopKIOrOREbVFiH6jOLmTJZrczInCtQuuumaODKwDgF3Rp/kyymHFWZjMoE23KGhloUUdQ6qLQTsD0ALwFENri6o1MkWbA1D/SDzfi3GqCAF8lSB0WaJWCjKlIDSTtAfdPjHMm4majiQUoY9C1KBUqYhaa/8zP+l/RidqTPXnmdqVodwXfqNTMx0O0nt6R1cI4bgDdXTGpkPZ7D4mBze8OqD7gnB8cqZDQf7LDnvXx6/HHavjUzUdKmYAY8XV2sI6NlfToWo2SU0I6UdrvqJB3BuOtqwf7gtHKJJ9xZut9HtRRbc70m3wXlSTpb8d34t+TwkYMxgcKLrdPiHDOel7xufbUMVVb0a74zk+/4YC7orEm8jbV161LI3JjabQbY3u6KTbgOqYep12GWzHZ+MGlM6aXoKrgdsS3NEZOCMPioFfFNexKbgBg2QAKwncm3QeAi1tfBzH3qYOcj0EJa9e8lf6m46ZvPR3ZcvqtVp4Y4WA3kvloLT4d9F6VjgelpXYcfmlEhdMgOAYFL2d8BBtyImOKPqBMsYn0gXQCoCWAD9WFxGfPuSe69d7goPdp3ZaYXyGwzE+xFpmjeR3Whx3tA7YlG5xTRk211TeGaCpi2XIw6RGbToNoP1RfG/TcVw3u7OKQelLMjbf6PFXpwZ4MSmnOHhSzm84O/CNhjyJovnP2tSesVfeBQDMBrvaCNslfHyMST+ISciwLb0FG/l6ddxX3EDDyGdehvZjOkOr4mho2TrtbGjhnkQe7YzUbC7tSNh7pbOexBrVkSDgSJyujgQkfYCm+nYkUEe+IkfSYCdHR2I6yKkB8PH9SINg/DNlfC/4DQCndOPL6sYGP2I1S5I80sF+1o6+c93YUHmhXZiOcRmhuDeiA3XFL65HjelTKjqQ/wKIf1wt4gySaGydCUERcX3Y79OILvqkgJQG0h5bU0JQMFxGhIKYpdvRNjX3KP0rYKWBlc257g9YKBYuQxrfqeHZAkWdMcnxYJQQByshEI/ZQxHjLiqSQLjP8HBxvM0C3pz2s1VTZs1qYo3inyb4k8uR+SaILi7jlQJ/exlvzjfF+N9A7BtBGS9bFUGRuWHIHEgCsizJB3tpOtdL5pBKHO00yc88+Wgam8whKPgVZE7FF9Igjs/joAp4j+OYRPlKCApLeSzHp3JQNCuwjLznPPtD4SmP5/gMDsplJTVXOErjOD6HM6FY9pVEOxryqIdlGyDR2KmTJhTLlOrZBUnp2TK9IQnVMQDfULLK1LTsiXSaVr+ZE03AvVts4d92Wt3FFg3VmzL5hUx7FltMKMlV1jdRksswkguyJSSXMsXjB5NcTKgHAoNUkkvDyG4juQgNrC/JxYRCWi655IsmUF5weCb4kJdUOCKNq0CFEeLaXzQCtbQ1WebZaiS6w57/KV9SIX0fuwuTFcmIvYJYGmKBODMwxFBoq0BcDOB9sfhJCfNewdwKZoFmMzDMUINbkxXZMKAVS5QHUyTcDIwmVOBKvl8J+evjljpqBbI8yAJRZ1iQLajOfQu9KHt/rkC+DMgCvWdgkKFyB+AbUO+pzpZJp8/oY2o+TeC9V/MxAUPnhRppzce05lPGfkrZh62TMJDsw04n+MqR0nyG0Xwc8A0SQVyPkMCx8NMqr0/ysSQSBZXk0zCq20g+QvvqS/KxoJC3/o8XpBnZEfn0G8vRZsujZr8rccpdqRrclXRShS2y4At0ISH4/UUtEplzVxm1XD4YmYEJsvwjQToYoU3Re9fKf0a9YcNGU25ht74jEygfZsrSa7aSj4pJeo1JwPcXLdnvol3/9xctKHqqmETisWS3jUkGzfy1JCbndl2vxjSrK9boU92Zt37IfICVbFii0PkFKBqgHmopG955zYzOT0V+Os2MXxWn4SlI7SSlzuVuxShrvmgdXHRxplNP7JNH0B/5VVzW+0H1+NQ4CULeEYoHiV4ZIANOwzLHtVRA/e3Oiy4Ba7AHnq3FnHUvDtSa1R3o3LiYA9WGc6CM9350BzrjojGYjCZvlvwkQsTnKfVtloKp4DRQj0Jf+NmuLd6nPw87/6cI71LX9bL1ErKm8VVa/xLhfd1k5QIiMZzFAbZR7yNH8K1zQ5hIqp0Itt/31UkD9loS+R2/eNaZWyGtPbfKq+7wa23HtozrErBypu/MBZzGFMB6ikK9D1WopqaoMsFfQdoaUtHqqcNCCqXUFNIbd+e1UkkUnhm5FE1wHhbPrgshZph0WR9RmzqzOqOcajo6ExRlJRBhlfGaZqNqPN+boioRStkNFjBQKKUhc2odVVWt/rp3zgdDsnGVw7NFXR84rILq7LcDiT9GQGXxtKrsnepLDxHsPUZUUDX8Nah8fkC56jOY8pxEZ65yPF8NJcNObyh+TEAd/eMBCrWtLGGOVmUrB/xP6OEUsNxIBct/mwJtf1BgmYpb+/Zq+Cj4nqNC89ww/QBoSqQ9XjpGtgwQI8/fFyNbllmJkdPMA41NmB0lYZJFdB88okZgVbJZxxjaBBEFP3u35xjagSJb73asafx6+KbZxY5rqTZp4R4n6Zv3rMbQzGsicSb4GCLPErqb3MAL2jtQAcT7PT0QJtB9l2va50Oq8WFGvaw+tz/8KvYOFPVuNkkoEGiP7Drf4QjHLZfuUabNidOfKgjTiCZNXymm8V0ukuA991ygh7fNcn5fHDGY1tZhrdFBnvYf5iFudM3QgL554G8NOQIhLPSSK3Gnpz8Rok1ti70pfKudsat9sA8WcUf06GqhLHcXukTwPBxFydQ1nn5pokRMTZQaOeclYQnHSYtRGCbVPqa3tc26hFb+Hw==</diagram></mxfile>
|
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 118 KiB |
@ -1 +0,0 @@
|
||||
<mxfile host="app.diagrams.net" modified="2022-11-15T17:50:34.293Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36" etag="7yO7rOtHmAhlMZaJAtLY" version="20.5.3" type="device"><diagram id="EhPrNy5HpteiR21U6QY4" name="Page-1">7Zxdb9s2FIZ/jS87WKLlj8vYzdYB6RbUKwr0JmAk2uJCiR5FxU5//Q4l0rJEJ3HTWnQBAgYiHZEUxfOQ1Hl1kAFaZLs/BN6kH3lC2CAcJrsBej8Iw2A8QfBHWZ5qywyNasNa0EQXagxL+o1o41BbS5qQolVQcs4k3bSNMc9zEsuWDQvBt+1iK87ad93gNbEMyxgz2/qFJjKtrdNw0tg/ELpOzZ2D8ay+kmFTWD9JkeKEbw9M6HqAFoJzWR9luwVhavDMuNT1fn/m6r5jguTylApf0+T6c/Zvju7m+Ot8lo6msnynW3nErNQP/LkgQndYPplRKLY0YziHs/mK53KprwzhPE4pS27wEy9VLwqJ4wdzNk+5oN+gPGZwKQADXBZSOxkNWyWWqqZuU5ACytyaRws6po941yp4gwtpesMZw5uC3lf9UxUzLNY0n3MpeaYLbVMqyXKDY1VmC9yqjsjMdFIPCRGS7J4d62DvQUCf8IxI8QRFdIU9vpr6cKjPtw1DwUjb0gN+9hWx5na9b7txLRxo736Hp0PL04NwzJSXSjhYqwOor01wh73VggGGRVa+FPyBLDjjAuw5r+mgjHVMmNF1DqeMrFQ1Na4U5teVNmc0SVTL8wIcQvP1TVXs/aixfNLDo0wcqq9YNY1SqEighfmG01xWwxXN4QcDuBj+Fg0i6OsCzoPmHH6quJALnkP3Ma28SQCfLVEIzQWXWOL7Pdw/g5Tn552Nj8YFnUgLOhcskQXLpiBlwj0LvbMwds0CslhYUVHIv3BGPA694zBzjcPIwiH3JLggIQhdozC2UMgwZR6F/lGIXKMwsV8YcFFsuUg8Dv3jMHWNw9TC4R9cPPiw8gfDytH44sLKmQ8rL2hdmF52WGkoPKAlIUUs6EZSnnsieifCeXAZ2AJkgiVZCII9Ek6QcB5gBrZSqZC4zv2rZP80uA8yA1t/osWtoI/AhAeifyCch5qBLU4PQvRncherTYPbH688FGeHwnnAGdhalMUByZMr9UUYzmKGi4LG7dERvMwTkuihrKuTxPo83AnW4Ba8FDF5bfDCIQSpa/KGqP5gUKMjY2psgjB4Z3psd/fYQOs73CoMm9gy6nyyHHV9VT+mrhUefGfuNtQJUtG001A9DlZDld/3j/0DKNha1FWSUftd0qsP36c+dPx66kYwPtecD+1oEjaCI/LDnfa/FyH6EScnL24WzlWI0I45L2evMKvXr7VZWM5662YR9LxZGNf7BKifnACFOpvF5FSlenS2aW8Hkl6qdrdL1DPvgncJO9HB50C5osG5Th3aooPPgnIIhHOVOrQFB58H5YYF9xp1aEsOPhPKEQzO9enQTn7xuVAOgXCuTZubtb5gHZckPQ9n52GfCuVugbBzpnx23En+fiU7zsx0ozlMo9M8fb7sOGRPfa85OFwaZi8uDc41B3QkG8rnx7lEwrnwgGyB2ifIuWXCufaAbCXbZ8g5w8G9/IBsqdqnyLkkwrkGgXyO3OVR4VyIQJecJGei4lcTH56L73vKfOh82J4OO946OfOhE61Ook5DZ858GB3LgqnjUKU2tKgY/1dyc+FdUSkJV1AgHG92FQTmehO81g3dG8Pfnw5i3PtuMbDVt3w59D2g0Kw/MWBGxEsrUCVWHMz+9sKi1g5cSl4/k1ZLTlsCT1onXhEshm0EoiNvEuMjKL8hRQJOm/80VCPU/L8mdP0/</diagram></mxfile>
|
Before Width: | Height: | Size: 33 KiB |
@ -0,0 +1,34 @@
|
||||
#--------------------------------
|
||||
# Config
|
||||
#--------------------------------
|
||||
|
||||
Options +FollowSymlinks
|
||||
|
||||
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]
|
@ -1,91 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace controleur;
|
||||
|
||||
class Controleur {
|
||||
|
||||
function __construct() {
|
||||
global $rep,$vues; // nécessaire pour utiliser variables globales
|
||||
// on démarre ou reprend la session
|
||||
session_start();
|
||||
|
||||
|
||||
//debut
|
||||
|
||||
//on initialise un tableau d'erreur
|
||||
$dVueEreur = array ();
|
||||
|
||||
try{
|
||||
$action=$_REQUEST['action'];
|
||||
|
||||
switch($action) {
|
||||
|
||||
//pas d'action, on réinitialise 1er appel
|
||||
case NULL:
|
||||
$this->Reinit();
|
||||
break;
|
||||
|
||||
|
||||
case "validationFormulaire":
|
||||
$this->ValidationFormulaire($dVueEreur);
|
||||
break;
|
||||
|
||||
//mauvaise action
|
||||
default:
|
||||
$dVueEreur[] = "Erreur d'appel php";
|
||||
require ($rep.$vues['vuephp1']);
|
||||
break;
|
||||
}
|
||||
|
||||
} catch (PDOException $e)
|
||||
{
|
||||
//si erreur BD, pas le cas ici
|
||||
$dVueEreur[] = "Erreur inattendue!!! ";
|
||||
require ($rep.$vues['erreur']);
|
||||
|
||||
}
|
||||
catch (Exception $e2)
|
||||
{
|
||||
$dVueEreur[] = "Erreur inattendue!!! ";
|
||||
require ($rep.$vues['erreur']);
|
||||
}
|
||||
|
||||
|
||||
//fin
|
||||
exit(0);
|
||||
}//fin constructeur
|
||||
|
||||
|
||||
function Reinit() {
|
||||
global $rep,$vues;
|
||||
|
||||
$dVue = array (
|
||||
'nom' => "",
|
||||
'age' => 0,
|
||||
);
|
||||
require ($rep.$vues['vuephp1']);
|
||||
}
|
||||
|
||||
function ValidationFormulaire(array $dVueEreur) {
|
||||
global $rep,$vues;
|
||||
|
||||
|
||||
//si exception, ca remonte !!!
|
||||
$nom=$_POST['txtNom']; // txtNom = nom du champ texte dans le formulaire
|
||||
$age=$_POST['txtAge'];
|
||||
\config\Validation::val_form($nom,$age,$dVueEreur);
|
||||
|
||||
$model = new \Modele\Simplemodel();
|
||||
$data=$model->get_data();
|
||||
|
||||
$dVue = array (
|
||||
'nom' => $nom,
|
||||
'age' => $age,
|
||||
'data' => $data,
|
||||
);
|
||||
require ($rep.$vues['vuephp1']);
|
||||
}
|
||||
|
||||
}//fin class
|
||||
|
||||
?>
|
@ -1,18 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace modeles;
|
||||
|
||||
class Tache
|
||||
{
|
||||
private string $nom;
|
||||
private string $description;
|
||||
private Date $dateCreation;
|
||||
private bool $estValide;
|
||||
|
||||
public function __construct(String $nom, string $description, Date $dateCreation){
|
||||
$this->nom = $nom;
|
||||
$this->description = $description;
|
||||
$this->dateCreation = $dateCreation;
|
||||
$this->estValide = false;
|
||||
}
|
||||
|
@ -1,24 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace modeles;
|
||||
|
||||
class Utilisateur
|
||||
{
|
||||
|
||||
private string $nom;
|
||||
private string $prenom;
|
||||
private string $pseudo
|
||||
private string $email;
|
||||
private string $motDePasse;
|
||||
private bool $isAdmin;
|
||||
|
||||
public function __construct(string $nom, string $prenom, string $pseudo, string $email,string $motDePasse, bool $isAdmin){
|
||||
$this->nom = $nom;
|
||||
$this->prenom = $prenom;
|
||||
$this->pseudo = $pseudo;
|
||||
$this->email = $email;
|
||||
$this->motDePasse = $motDePasse;
|
||||
$this->isAdmin = $isAdmin;
|
||||
}
|
||||
}
|
||||
?>
|
Before Width: | Height: | Size: 208 KiB |
Before Width: | Height: | Size: 896 KiB |
Before Width: | Height: | Size: 8.2 KiB |
@ -1,89 +0,0 @@
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
|
||||
/* HEADER */
|
||||
|
||||
.main-head{
|
||||
background: #9AF7FF;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
a{
|
||||
font-family: JetBrains Mono,Menlo,Droid Sans Mono,monospace;
|
||||
}
|
||||
|
||||
nav{
|
||||
min-height: 10vh;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
nav ul{
|
||||
display: flex;
|
||||
flex: 1 1 40rem;
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
.main-logo img{
|
||||
flex: 1 1 40rem;
|
||||
}
|
||||
|
||||
/*Réseau sociaux*/
|
||||
|
||||
.social {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.social a {
|
||||
display: inline-block;
|
||||
width: 20%;
|
||||
height: 30%;
|
||||
padding: 35%;
|
||||
border-radius: 40%;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: white;
|
||||
position: relative;
|
||||
flex-shrink: 0;
|
||||
transition: all .2s;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 768px) {
|
||||
.social a:hover {
|
||||
transform: scale(1.2) translateY(-5px);
|
||||
}
|
||||
}
|
||||
|
||||
.social a.facebook {
|
||||
padding-top: 2%;
|
||||
padding-left: 4%;
|
||||
background: linear-gradient(45deg, #3b5998,#0078d7);
|
||||
box-shadow: 0 4px 30px rgba(45, 98, 169, 1);
|
||||
}
|
||||
|
||||
.social a.twitter {
|
||||
padding-top: 2%;
|
||||
padding-left: 4%;
|
||||
background: linear-gradient(45deg, #1da1f2,#0e71c8);
|
||||
box-shadow: 0 4px 30px rgba(19, 127, 212, 1);
|
||||
}
|
||||
|
||||
.social a.instagram {
|
||||
padding-top: 2%;
|
||||
padding-left: 4%;
|
||||
background: linear-gradient(45deg, #405de6,#5851db,#833ab4,#c13584,#e1306c,#fd1d1d);
|
||||
box-shadow: 0 4px 30px rgba(120, 64, 190, 0.8);
|
||||
}
|
||||
|
||||
.social a.gitlab {
|
||||
padding-top: 2%;
|
||||
padding-left: 4%;
|
||||
background: linear-gradient(45deg, #FF9467,#DB4100);
|
||||
box-shadow: 0 4px 30px rgba(255,148,103, 0.6);
|
||||
}
|
@ -1,355 +0,0 @@
|
||||
body {
|
||||
background: linear-gradient(to right, #B7FBFB,#38B6FF);
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
body::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
background: rgba(255,255,255, .15);
|
||||
inset: 0;
|
||||
transform: rotate(-5deg);
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.main-logo{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.text-box {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.btn:link,
|
||||
.btn:visited {
|
||||
text-transform: uppercase;
|
||||
text-decoration: none;
|
||||
padding: 10px 15px;
|
||||
display: inline-block;
|
||||
border-radius: 100px;
|
||||
font-size: 60%;
|
||||
transition: all .2s;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.btn:hover {
|
||||
transform: translateY(-3px);
|
||||
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.btn:active {
|
||||
transform: translateY(-1px);
|
||||
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.btn-white {
|
||||
background-color: #fff;
|
||||
color: #777;
|
||||
}
|
||||
|
||||
.btn::after {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
border-radius: 100px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: -1;
|
||||
transition: all .4s;
|
||||
}
|
||||
|
||||
.btn-white::after {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.btn:hover::after {
|
||||
transform: scaleX(1.5) scaleY(1.7);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.btn-animated {
|
||||
animation: moveInBottom 5s ease-out;
|
||||
animation-fill-mode: backwards;
|
||||
}
|
||||
|
||||
.main-logo img{
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
body fieldset {
|
||||
box-shadow: 0 8px 10px #29a329;
|
||||
}
|
||||
|
||||
body.error {
|
||||
background: #f04000;
|
||||
}
|
||||
body.error fieldset {
|
||||
box-shadow: 0 8px 10px #bd3200;
|
||||
}
|
||||
|
||||
h2 {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
font-family: sans-serif;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 2px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
color: white;
|
||||
font-size: 100%;
|
||||
/*transform: translateX(-50%);*/
|
||||
font-family: sans-serif;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
h2 {
|
||||
top: 44px;
|
||||
color: white;
|
||||
font-size: 10px;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
ul.items {
|
||||
position: absolute;
|
||||
width: 30px;
|
||||
height: auto;
|
||||
top: 50%;
|
||||
left: -60px;
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
ul.items li {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
margin: 10px 0;
|
||||
background: white;
|
||||
border-radius: 50%;
|
||||
opacity: 0.4;
|
||||
cursor: pointer;
|
||||
}
|
||||
ul.items li.active {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
form {
|
||||
position: absolute;
|
||||
width: 300px;
|
||||
height: 60px;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
form fieldset {
|
||||
position: absolute;
|
||||
width: 300px;
|
||||
height: 60px;
|
||||
background: white;
|
||||
border-radius: 3px;
|
||||
opacity: 0;
|
||||
transform: scale(0.2);
|
||||
transition: all 0.4s ease-in-out;
|
||||
}
|
||||
form fieldset input, form fieldset p {
|
||||
display: inline-block;
|
||||
width: 200px;
|
||||
margin-left: 50px;
|
||||
color: #333333;
|
||||
font-size: 16px;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
form fieldset p {
|
||||
margin-top: 22px;
|
||||
text-align: center;
|
||||
}
|
||||
form fieldset input {
|
||||
height: 40px;
|
||||
margin-top: 8px;
|
||||
border: none;
|
||||
outline: none;
|
||||
}
|
||||
form fieldset .icon {
|
||||
position: absolute;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
top: 15px;
|
||||
transition: all 0.4s ease;
|
||||
}
|
||||
form fieldset .icon i {
|
||||
position: absolute;
|
||||
display: block;
|
||||
}
|
||||
form fieldset .icon i::before, form fieldset .icon i::after {
|
||||
position: absolute;
|
||||
content: "";
|
||||
}
|
||||
form fieldset .icon.left {
|
||||
left: 10px;
|
||||
}
|
||||
form fieldset .icon.right {
|
||||
right: 10px;
|
||||
cursor: pointer;
|
||||
}
|
||||
form fieldset .icon.button:hover {
|
||||
background: #f2f2f2;
|
||||
border-radius: 3px;
|
||||
transition: all 0.4s ease;
|
||||
}
|
||||
form fieldset.enable {
|
||||
z-index: 1;
|
||||
opacity: 1;
|
||||
transition: all 0.5s ease-out 0.2s;
|
||||
transform: scale(1);
|
||||
animation: enable 0.5s ease-out 0.2s;
|
||||
}
|
||||
form fieldset.disable {
|
||||
opacity: 0;
|
||||
transition: all 0.3s ease-in;
|
||||
transform: translateY(120px) scale(0.9);
|
||||
}
|
||||
|
||||
body.error fieldset {
|
||||
transform-origin: 50% 100%;
|
||||
animation: error 0.3s ease-out;
|
||||
}
|
||||
|
||||
@keyframes enable {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: scale(0.2);
|
||||
}
|
||||
60% {
|
||||
transform: scale(1.1);
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
@keyframes error {
|
||||
0%, 50%, 100% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
25% {
|
||||
transform: rotate(-3deg);
|
||||
}
|
||||
75% {
|
||||
transform: rotate(3deg);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* * Icons in CSS, long as f****
|
||||
* */
|
||||
.icon .arrow {
|
||||
width: 2px;
|
||||
height: 17px;
|
||||
top: 5px;
|
||||
left: 14px;
|
||||
background: #333333;
|
||||
}
|
||||
.icon .arrow::before {
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
bottom: -1px;
|
||||
left: -3px;
|
||||
border-color: #333333;
|
||||
border-right: 2px solid;
|
||||
border-bottom: 2px solid;
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
|
||||
.icon .user {
|
||||
width: 20px;
|
||||
height: 10px;
|
||||
bottom: 5px;
|
||||
left: 5px;
|
||||
box-shadow: 0 0 0 2px #333333 inset;
|
||||
border-radius: 6px 6px 3px 3px;
|
||||
}
|
||||
.icon .user::before {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
top: -9px;
|
||||
left: 5px;
|
||||
box-shadow: 0 0 0 2px #333333 inset;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.icon .letter {
|
||||
width: 20px;
|
||||
height: 12px;
|
||||
top: 9px;
|
||||
left: 5px;
|
||||
box-shadow: 0 0 0 2px #333333 inset;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.icon .letter::before, .icon .letter::after {
|
||||
width: 11px;
|
||||
height: 2px;
|
||||
top: 4px;
|
||||
background: #333333;
|
||||
}
|
||||
.icon .letter::before {
|
||||
left: 0;
|
||||
transform: rotate(30deg);
|
||||
}
|
||||
.icon .letter::after {
|
||||
right: 0;
|
||||
transform: rotate(-30deg);
|
||||
}
|
||||
|
||||
.icon .lock {
|
||||
width: 20px;
|
||||
height: 16px;
|
||||
top: 9px;
|
||||
left: 5px;
|
||||
box-shadow: 0 0 0 2px #333333 inset;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.icon .lock::before {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
top: -4px;
|
||||
left: 4px;
|
||||
border: 2px solid transparent;
|
||||
border-top: 2px solid #333333;
|
||||
border-right: 2px solid #333333;
|
||||
border-radius: 50%;
|
||||
transform: rotate(-45deg);
|
||||
}
|
||||
.icon .lock::after {
|
||||
width: 6px;
|
||||
height: 7px;
|
||||
top: 4px;
|
||||
left: 7px;
|
||||
box-shadow: 0 0 0 2px #333333 inset;
|
||||
}
|
||||
|
||||
.icon .heart {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
top: 11px;
|
||||
left: 7px;
|
||||
background: #ff5233;
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
.icon .heart::before, .icon .heart::after {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border-radius: 50%;
|
||||
background: #ff5233;
|
||||
}
|
||||
.icon .heart::before {
|
||||
left: -6px;
|
||||
}
|
||||
.icon .heart::after {
|
||||
top: -6px;
|
||||
}
|
@ -1,233 +0,0 @@
|
||||
@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@300;400;500;600;700&display=swap');
|
||||
|
||||
body {
|
||||
font: 18px "Nunito", sans-serif;
|
||||
color: black;
|
||||
min-height: 100vh;
|
||||
padding: 2rem;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
body::before {
|
||||
content: '';
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
z-index: -1;
|
||||
pointer-events: none;
|
||||
background: url("../Images/Back(2).jpg") no-repeat center;
|
||||
background-size: cover;
|
||||
animation: backgroundZoomAnimate 20s forwards;
|
||||
}
|
||||
|
||||
@keyframes backgroundZoomAnimate {
|
||||
from {
|
||||
transform: scale(1);
|
||||
}
|
||||
to {
|
||||
transform: scale(1.3);
|
||||
}
|
||||
}
|
||||
|
||||
.profil-card {
|
||||
box-shadow: 0 18px 200px -60px black;
|
||||
border-radius: 50px;
|
||||
width: 650px;
|
||||
position: relative;
|
||||
backdrop-filter: blur(15px);
|
||||
border: 2px solid #ffffff40;
|
||||
padding: 3rem 5rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 40px;
|
||||
|
||||
@media screen and (max-width: 768px) {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.profil-card__img img {
|
||||
margin: auto;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
border-radius: 50%;
|
||||
object-fit: cover;
|
||||
display: block;
|
||||
box-shadow: 0 10px 60px -10px rgba(13,28,39,.5);
|
||||
}
|
||||
|
||||
.profil-card__desc {
|
||||
text-align: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 25px;
|
||||
|
||||
}
|
||||
|
||||
.localisation {
|
||||
display: flex;
|
||||
align-items:center;
|
||||
gap:10px;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.profil-card__desc h1 {
|
||||
font-size: 2.5rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.profil-card__desc h1 + div {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.info{
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: 50px;
|
||||
|
||||
@media screen and (max-width: 576px) {
|
||||
gap: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
.info > div {
|
||||
text-transform: uppercase;
|
||||
font-weight: bold;
|
||||
letter-spacing: 1px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.info > div > *:first-child {
|
||||
font-weight: bold;
|
||||
letter-spacing: 3px;
|
||||
font-size: 2rem;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.info > div > *:last-child {
|
||||
font-size: 16px;
|
||||
opacity: .7;
|
||||
}
|
||||
|
||||
.social {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.social a {
|
||||
display: inline-block;
|
||||
width: 55px;
|
||||
height: 55px;
|
||||
margin: 15px;
|
||||
border-radius: 40%;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: white;
|
||||
position: relative;
|
||||
flex-shrink: 0;
|
||||
transition: all .2s;
|
||||
|
||||
@media screen and (max-width: 768px) {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
margin: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 768px) {
|
||||
.social a:hover {
|
||||
transform: scale(1.2) translateY(-5px);
|
||||
}
|
||||
}
|
||||
|
||||
.social a.facebook {
|
||||
padding-top: 15px;
|
||||
padding-left: 15px;
|
||||
background: linear-gradient(45deg, #3b5998,#0078d7);
|
||||
box-shadow: 0 4px 30px rgba(45, 98, 169, 1);
|
||||
}
|
||||
|
||||
.social a.twitter {
|
||||
padding-top: 15px;
|
||||
padding-left: 15px;
|
||||
background: linear-gradient(45deg, #1da1f2,#0e71c8);
|
||||
box-shadow: 0 4px 30px rgba(19, 127, 212, 1);
|
||||
}
|
||||
|
||||
.social a.instagram {
|
||||
padding-top: 15px;
|
||||
padding-left: 15px;
|
||||
background: linear-gradient(45deg, #405de6,#5851db,#833ab4,#c13584,#e1306c,#fd1d1d);
|
||||
box-shadow: 0 4px 30px rgba(120, 64, 190, 0.8);
|
||||
}
|
||||
|
||||
.social a.gitlab {
|
||||
padding-top: 15px;
|
||||
padding-left: 15px;
|
||||
background: linear-gradient(45deg, #FF9467,#DB4100);
|
||||
box-shadow: 0 4px 30px rgba(255,148,103, 0.6);
|
||||
}
|
||||
|
||||
.actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 2rem;
|
||||
|
||||
@media screen and (max-width: 576px) {
|
||||
flex-direction: column;
|
||||
gap: 1.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
.actions > button {
|
||||
font-weight: bold;
|
||||
font-size: 22px;
|
||||
padding: 15px 0;
|
||||
min-width: 250px;
|
||||
border-radius: 50px;
|
||||
text-align: center;
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
transition: all .2s;
|
||||
|
||||
@media screen and (max-width: 760px) {
|
||||
min-width: 170px;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 576px) {
|
||||
min-width: inherit;
|
||||
width: 100%;
|
||||
max-width: 350%;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 576px) {
|
||||
.actions > button:hover {
|
||||
transform: translateY(-5px);
|
||||
}
|
||||
}
|
||||
|
||||
.bleu{
|
||||
background: linear-gradient(45deg, #1da1f2,#0e71c8);
|
||||
box-shadow: 0 4px 30px rgba(19, 127, 212, 0.4);
|
||||
}
|
||||
|
||||
.bleu:hover {
|
||||
box-shadow: 0 7px 30px rgba(19, 127, 212, 0.75);
|
||||
}
|
||||
|
||||
|
||||
.orange {
|
||||
background: linear-gradient(45deg, #d5135a,#f05924);
|
||||
box-shadow: 0 4px 30px rgba(223, 45, 70, 0.35);
|
||||
}
|
||||
|
||||
|
||||
.orange:hover {
|
||||
box-shadow: 0 7px 30px rgba(223,45,70,0.75);
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
<html>
|
||||
<head><title>Erreur</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h1>ERREUR !!!!!</h1>
|
||||
<?php
|
||||
if (isset($dVueEreur)) {
|
||||
foreach ($dVueEreur as $value){
|
||||
echo $value;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
|
||||
</body> </html>
|
@ -1,58 +0,0 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Home Page</title>
|
||||
<link rel="stylesheet" href="../css/home.css">
|
||||
<link rel="stylesheet" href="../css/reset.css" />
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header class="main-head">
|
||||
<nav>
|
||||
<div class="main-logo">
|
||||
<img src="../Images/Logo.png" alt="logo">
|
||||
</div>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="login.html">Se connecter</a>
|
||||
</li>
|
||||
<li>
|
||||
<a>Profil</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="social">
|
||||
<a href="#" class="facebook">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-facebook" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||||
<path d="M7 10v4h3v7h4v-7h3l1 -4h-4v-2a1 1 0 0 1 1 -1h3v-4h-3a5 5 0 0 0 -5 5v2h-3"></path>
|
||||
</svg>
|
||||
</a>
|
||||
<a href="#" class="twitter">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-twitter" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||||
<path d="M22 4.01c-1 .49 -1.98 .689 -3 .99c-1.121 -1.265 -2.783 -1.335 -4.38 -.737s-2.643 2.06 -2.62 3.737v1c-3.245 .083 -6.135 -1.395 -8 -4c0 0 -4.182 7.433 4 11c-1.872 1.247 -3.739 2.088 -6 2c3.308 1.803 6.913 2.423 10.034 1.517c3.58 -1.04 6.522 -3.723 7.651 -7.742a13.84 13.84 0 0 0 .497 -3.753c-.002 -.249 1.51 -2.772 1.818 -4.013z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
<a href="#" class="instagram">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-instagram" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||||
<rect x="4" y="4" width="16" height="16" rx="4"></rect>
|
||||
<circle cx="12" cy="12" r="3"></circle>
|
||||
<line x1="16.5" y1="7.5" x2="16.5" y2="7.501"></line>
|
||||
</svg>
|
||||
</a>
|
||||
<a href="#" class="gitlab">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-gitlab" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||||
<path d="M21 14l-9 7l-9 -7l3 -11l3 7h6l3 -7z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -1,54 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
|
||||
<title>Page d'inscription</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="../css/inscription.css">
|
||||
<script type="text/javascript" src="../javaScript/inscription.js" defer></script>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="text-box">
|
||||
<a href="login.html" class="btn btn-white btn-animate">Revenir</a>
|
||||
</div>
|
||||
<div class="main-logo">
|
||||
<img src="../Images/Logo.png" alt="logo">
|
||||
<h1>Inscription</h1>
|
||||
</div>
|
||||
|
||||
<form>
|
||||
<ul class="items"></ul>
|
||||
|
||||
<fieldset class="username enable">
|
||||
<div class="icon left"><i class="user"></i></div>
|
||||
<input type="text" name="username" placeholder="Username"/>
|
||||
<div class="icon right button"><i class="arrow"></i></div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="email">
|
||||
<div class="icon left"><i class="letter"></i></div>
|
||||
<input type="mail" name="email" placeholder="Email"/>
|
||||
<div class="icon right button"><i class="arrow"></i></div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="password">
|
||||
<div class="icon left"><i class="lock"></i></div>
|
||||
<input type="password" name="password" placeholder="Password"/>
|
||||
<div class="icon right button"><i class="arrow"></i></div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="thanks">
|
||||
<div class="icon left"><i class="heart"></i></div>
|
||||
<p>Merci pour votre inscription</p>
|
||||
<div class="icon right"><i class="heart"></i></div>
|
||||
</fieldset>
|
||||
|
||||
</form>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
@ -1,78 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Page Profil</title>
|
||||
<link rel="stylesheet" href="../css/profil.css">
|
||||
<link rel="stylesheet" href="../css/reset.css" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="profil-card">
|
||||
<figure class="profil-card__img">
|
||||
<img src="../Images/avatar.jpeg" alt="Image Profil">
|
||||
</figure>
|
||||
|
||||
<div class="profil-card__desc">
|
||||
<h1>Ritchie Golozer</h1>
|
||||
<div>front-end Developer</div>
|
||||
<div style="localisation">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-map-pin" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||||
<circle cx="12" cy="11" r="3"></circle>
|
||||
<path d="M17.657 16.657l-4.243 4.243a2 2 0 0 1 -2.827 0l-4.244 -4.243a8 8 0 1 1 11.314 0z"></path>
|
||||
</svg>
|
||||
<span>Clermont-Ferrand</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="social">
|
||||
<a href="#" class="facebook">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-facebook" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||||
<path d="M7 10v4h3v7h4v-7h3l1 -4h-4v-2a1 1 0 0 1 1 -1h3v-4h-3a5 5 0 0 0 -5 5v2h-3"></path>
|
||||
</svg>
|
||||
</a>
|
||||
<a href="#" class="twitter">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-twitter" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||||
<path d="M22 4.01c-1 .49 -1.98 .689 -3 .99c-1.121 -1.265 -2.783 -1.335 -4.38 -.737s-2.643 2.06 -2.62 3.737v1c-3.245 .083 -6.135 -1.395 -8 -4c0 0 -4.182 7.433 4 11c-1.872 1.247 -3.739 2.088 -6 2c3.308 1.803 6.913 2.423 10.034 1.517c3.58 -1.04 6.522 -3.723 7.651 -7.742a13.84 13.84 0 0 0 .497 -3.753c-.002 -.249 1.51 -2.772 1.818 -4.013z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
<a href="#" class="instagram">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-instagram" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||||
<rect x="4" y="4" width="16" height="16" rx="4"></rect>
|
||||
<circle cx="12" cy="12" r="3"></circle>
|
||||
<line x1="16.5" y1="7.5" x2="16.5" y2="7.501"></line>
|
||||
</svg>
|
||||
</a>
|
||||
<a href="#" class="gitlab">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-gitlab" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||||
<path d="M21 14l-9 7l-9 -7l3 -11l3 7h6l3 -7z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
<div class="info">
|
||||
<div>
|
||||
<div>850</div>
|
||||
<div>Followers</div>
|
||||
</div>
|
||||
<div>
|
||||
<div>50</div>
|
||||
<div>References</div>
|
||||
</div>
|
||||
<div>
|
||||
<div>105</div>
|
||||
<div>Works</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="actions">
|
||||
<button class="orange">Se déconnecter</button>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,53 +0,0 @@
|
||||
|
||||
function init() {
|
||||
// Generate li foreach fieldset
|
||||
for (var i = 0; i < count; i++) {
|
||||
var ul = document.querySelector("ul.items"),
|
||||
li = document.createElement("li");
|
||||
|
||||
ul.appendChild(li);
|
||||
}
|
||||
// Add class active on first li
|
||||
ul.firstChild.classList.add("active");
|
||||
}
|
||||
|
||||
function next(target) {
|
||||
var input = target.previousElementSibling;
|
||||
|
||||
// Check if input is empty
|
||||
if (input.value === "") {
|
||||
body.classList.add("error");
|
||||
} else {
|
||||
body.classList.remove("error");
|
||||
|
||||
var enable = document.querySelector("form fieldset.enable"),
|
||||
nextEnable = enable.nextElementSibling;
|
||||
enable.classList.remove("enable");
|
||||
enable.classList.add("disable");
|
||||
nextEnable.classList.add("enable");
|
||||
|
||||
// Switch active class on left list
|
||||
var active = document.querySelector("ul.items li.active"),
|
||||
nextActive = active.nextElementSibling;
|
||||
active.classList.remove("active");
|
||||
nextActive.classList.add("active");
|
||||
}
|
||||
}
|
||||
|
||||
function keyDown(event) {
|
||||
var key = event.keyCode,
|
||||
target = document.querySelector("fieldset.enable .button");
|
||||
if (key == 13 || key == 9) next(target);
|
||||
}
|
||||
|
||||
var body = document.querySelector("body"),
|
||||
form = document.querySelector("form"),
|
||||
count = form.querySelectorAll("fieldset").length;
|
||||
|
||||
window.onload = init;
|
||||
document.body.onmouseup = function (event) {
|
||||
var target = event.target || event.toElement;
|
||||
if (target.classList.contains("button")) next(target);
|
||||
};
|
||||
document.addEventListener("keydown", keyDown, false);
|
||||
|
@ -0,0 +1,31 @@
|
||||
<?php
|
||||
class Connection extends PDO {
|
||||
|
||||
private $stmt;
|
||||
|
||||
public function __construct(string $dsn, string $username, string $password) {
|
||||
|
||||
parent::__construct($dsn,$username,$password);
|
||||
$this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
}
|
||||
|
||||
|
||||
/** * @param string $query
|
||||
* @param array $parameters *
|
||||
* @return bool Returns `true` on success, `false` otherwise
|
||||
*/
|
||||
|
||||
public function executeQuery(string $query, array $parameters = []) : bool{
|
||||
$this->stmt = parent::prepare($query);
|
||||
foreach ($parameters as $name => $value) {
|
||||
$this->stmt->bindValue($name, $value[0], $value[1]);
|
||||
}
|
||||
|
||||
return $this->stmt->execute();
|
||||
}
|
||||
|
||||
public function getResults() : array {
|
||||
return $this->stmt->fetchall();
|
||||
|
||||
}
|
||||
}
|
@ -1,155 +0,0 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
/**
|
||||
* SplClassLoader implementation that implements the technical interoperability
|
||||
* standards for PHP 5.3 namespaces and class names.
|
||||
*
|
||||
* http://groups.google.com/group/php-standards/web/psr-0-final-proposal?pli=1
|
||||
*
|
||||
* // Example which loads classes for the Doctrine Common package in the
|
||||
* // Doctrine\Common namespace.
|
||||
* $classLoader = new SplClassLoader('Doctrine\Common', '/path/to/doctrine');
|
||||
* $classLoader->register();
|
||||
*
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @author Jonathan H. Wage <jonwage@gmail.com>
|
||||
* @author Roman S. Borschel <roman@code-factory.org>
|
||||
* @author Matthew Weier O'Phinney <matthew@zend.com>
|
||||
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
|
||||
* @author Fabien Potencier <fabien.potencier@symfony-project.org>
|
||||
*/
|
||||
class SplClassLoader
|
||||
{
|
||||
private $_fileExtension = '.php';
|
||||
private $_namespace;
|
||||
private $_includePath;
|
||||
private $_namespaceSeparator = '\\';
|
||||
|
||||
/**
|
||||
* Creates a new <tt>SplClassLoader</tt> that loads classes of the
|
||||
* specified namespace.
|
||||
*
|
||||
* @param string $ns The namespace to use.
|
||||
*/
|
||||
public function __construct(string $ns = null, string $includePath = null)
|
||||
{
|
||||
$this->_namespace = $ns;
|
||||
$this->_includePath = $includePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the namespace separator used by classes in the namespace of this class loader.
|
||||
*
|
||||
* @param string $sep The separator to use.
|
||||
*/
|
||||
public function setNamespaceSeparator(string $sep)
|
||||
{
|
||||
$this->_namespaceSeparator = $sep;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the namespace seperator used by classes in the namespace of this class loader.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function getNamespaceSeparator()
|
||||
{
|
||||
return $this->_namespaceSeparator;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the base include path for all class files in the namespace of this class loader.
|
||||
*
|
||||
* @param string $includePath
|
||||
*/
|
||||
public function setIncludePath(string $includePath)
|
||||
{
|
||||
$this->_includePath = $includePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the base include path for all class files in the namespace of this class loader.
|
||||
*
|
||||
* @return string $includePath
|
||||
*/
|
||||
public function getIncludePath()
|
||||
{
|
||||
return $this->_includePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the file extension of class files in the namespace of this class loader.
|
||||
*
|
||||
* @param string $fileExtension
|
||||
*/
|
||||
public function setFileExtension($fileExtension)
|
||||
{
|
||||
$this->_fileExtension = $fileExtension;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the file extension of class files in the namespace of this class loader.
|
||||
*
|
||||
* @return string $fileExtension
|
||||
*/
|
||||
public function getFileExtension()
|
||||
{
|
||||
return $this->_fileExtension;
|
||||
}
|
||||
|
||||
/**
|
||||
* Installs this class loader on the SPL autoload stack.
|
||||
*/
|
||||
public function register()
|
||||
{
|
||||
spl_autoload_register(array($this, 'loadClass'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Uninstalls this class loader from the SPL autoloader stack.
|
||||
*/
|
||||
public function unregister()
|
||||
{
|
||||
spl_autoload_unregister(array($this, 'loadClass'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the given class or interface.
|
||||
*
|
||||
* @param string $className The name of the class to load.
|
||||
* @return void
|
||||
*/
|
||||
public function loadClass(string $className)
|
||||
{
|
||||
if (null === $this->_namespace || $this->_namespace.$this->_namespaceSeparator === substr($className, 0, strlen($this->_namespace.$this->_namespaceSeparator))) {
|
||||
$fileName = '';
|
||||
$namespace = '';
|
||||
if (false !== ($lastNsPos = strripos($className, $this->_namespaceSeparator))) {
|
||||
$namespace = substr($className, 0, $lastNsPos);
|
||||
$className = substr($className, $lastNsPos + 1);
|
||||
$fileName = str_replace($this->_namespaceSeparator, DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;
|
||||
}
|
||||
$fileName .= str_replace('_', DIRECTORY_SEPARATOR, $className) . $this->_fileExtension;
|
||||
|
||||
require ($this->_includePath !== null ? $this->_includePath . DIRECTORY_SEPARATOR : '') . $fileName;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,40 +1,127 @@
|
||||
<?php
|
||||
|
||||
namespace config;
|
||||
|
||||
class Validation {
|
||||
|
||||
static function val_action($action) {
|
||||
static function val_form_user(string &$nom, string &$prenom, string &$pseudo, string &$mdp, string &$email, &$dVueErreur) {
|
||||
|
||||
//Vérification Nom
|
||||
$nom = Validation::val_string($nom);
|
||||
if ($nom == NULL) {
|
||||
$dVueErreur['nom'] = "Le nom ne peut pas comporter de caractère spécial*";
|
||||
}else if(strlen($nom)<3){
|
||||
$dVueErreur['nom'] = "Le nom doit comporter au moins 3 caractères*";
|
||||
}
|
||||
|
||||
//Vérification Prenom
|
||||
$prenom = Validation::val_string($prenom);
|
||||
if ($prenom == NULL) {
|
||||
$dVueErreur['prenom'] = "Le prenom ne peut pas comporter de caractère spécial*";
|
||||
}else if(strlen($prenom)<3){
|
||||
$dVueErreur['prenom'] = "Le prenom doit comporter au moins 3 caractères*";
|
||||
}
|
||||
|
||||
//Vérification Email
|
||||
$email = Validation::val_mail($email);
|
||||
if ($email == NULL) {
|
||||
$dVueErreur['mail'] = "Format du mail non-respecter*";
|
||||
}
|
||||
|
||||
|
||||
//Vérification Pseudo
|
||||
$pseudo = Validation::val_string($pseudo);
|
||||
if ($pseudo == NULL) {
|
||||
$dVueErreur['pseudo'] = "Le pseudo ne peut pas comporter de caractère spécial*";
|
||||
}else if(strlen($pseudo)<5){
|
||||
$dVueErreur['pseudo'] = "Le pseudo doit comporter au moins 5 caractères*";
|
||||
}
|
||||
|
||||
|
||||
if (!isset($action)) {
|
||||
throw new Exception('pas d\'action');
|
||||
//on pourrait aussi utiliser
|
||||
//$action = $_GET['action'] ?? 'no';
|
||||
// This is equivalent to:
|
||||
//$action = if (isset($_GET['action'])) $action=$_GET['action'] else $action='no';
|
||||
if (!preg_match('/^.{5,}$/', $mdp)) {
|
||||
$dVueErreur['password'] = "Mot de passe trop léger : Plus de 5 caractères minimum !";
|
||||
}
|
||||
|
||||
if(count($dVueErreur)>0){
|
||||
throw new Exception("Erreur lors de l'inscription*");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static function val_form(string &$nom, string &$age, &$dVueEreur) {
|
||||
|
||||
if (!isset($nom)||$nom=="") {
|
||||
$dVueEreur[] = "pas de nom";
|
||||
$nom="";
|
||||
static function cleanString(string &$str) {
|
||||
$str = preg_replace('/[^A-Za-z\-]/', '', $str);
|
||||
if($str == null || $str == '')
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return $str;
|
||||
}
|
||||
|
||||
if ($nom != filter_var($nom, FILTER_SANITIZE_STRING))
|
||||
static function cleanPseudo(string &$str) {
|
||||
$str = preg_replace('/[^A-Za-z\-\^0-9]/', '', $str);
|
||||
if($str == null || $str == '')
|
||||
{
|
||||
$dVueEreur[] = "testative d'injection de code (attaque sécurité)";
|
||||
$nom="";
|
||||
return null;
|
||||
}
|
||||
return $str;
|
||||
}
|
||||
|
||||
static function cleanMail(string &$str) {
|
||||
$str = preg_replace('/[^A-Za-z\-\^0-9\.\@]/', '', $str);
|
||||
if($str == null || $str == '')
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return $str;
|
||||
}
|
||||
|
||||
if (!isset($age)||$age==""||!filter_var($age, FILTER_VALIDATE_INT)) {
|
||||
$dVueEreur[] = "pas d'age ";
|
||||
$age=0;
|
||||
static function val_form_add(string &$nom,string &$description,&$dVueErreur) {
|
||||
$nom = Validation::cleanText($nom);
|
||||
if ($nom == NULL) {
|
||||
$dVueErreur['nom'] = "Veuillez entrer un nom*";
|
||||
}
|
||||
$description = Validation::cleanText($description);
|
||||
if ($description == NULL) {
|
||||
$dVueErreur['description'] = "Veuillez entrer une description*";
|
||||
}
|
||||
if(count($dVueErreur)>0){
|
||||
throw new Exception("Problème lors de l'ajout");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
static function cleanText(string &$txt) {
|
||||
$txt = preg_replace('/[^A-Za-z\-\^0-9\ \à\é\^]/', '', $txt);
|
||||
if($txt == null || $txt == '')
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return $txt;
|
||||
}
|
||||
|
||||
static function val_mail(string &$mail) {
|
||||
if(filter_var($mail, FILTER_VALIDATE_EMAIL))
|
||||
{
|
||||
return $mail;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
static function val_string(string &$str) {
|
||||
if(filter_var($str, FILTER_SANITIZE_STRING)!=$str)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return $str;
|
||||
}
|
||||
|
||||
static function cleanInt(string &$int) {
|
||||
$int = preg_replace('/[^0-9]/', '', $int);
|
||||
if($int == null || $int == '')
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return intval($int);
|
||||
}
|
||||
}
|
||||
?>
|
@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
class CtrlAdmin {
|
||||
|
||||
function __construct() {
|
||||
|
||||
global $rep,$vues;
|
||||
|
||||
$dVueErreur = array ();
|
||||
|
||||
try{
|
||||
$action=NULL;
|
||||
if(isset($_REQUEST['action'])){
|
||||
$action = $_REQUEST["action"];
|
||||
}
|
||||
|
||||
switch($action) {
|
||||
|
||||
|
||||
case NULL:
|
||||
$this->ConsulterUtilisateurs($dVueErreur);
|
||||
break;
|
||||
|
||||
case "redirectionVueUtilisateur":
|
||||
$this->ConsulterUtilisateurs($dVueErreur);
|
||||
break;
|
||||
|
||||
case "SupprimerUtilisateur":
|
||||
$this->SupprimerUtilisateur($dVueErreur);
|
||||
break;
|
||||
|
||||
default:
|
||||
$dVueErreur[] = "Erreur d'appel php";
|
||||
require ($rep.$vues['erreur']);
|
||||
break;
|
||||
}
|
||||
|
||||
} catch (PDOException $e)
|
||||
{
|
||||
//si erreur BD, pas le cas ici
|
||||
$dVueErreur[] = "Erreur BD!!! ";
|
||||
require ($rep.$vues['erreur']);
|
||||
|
||||
}
|
||||
catch (Exception $e2)
|
||||
{
|
||||
$dVueErreur[] = "Erreur inattendue!!! ";
|
||||
require ($rep.$vues['erreur']);
|
||||
}
|
||||
|
||||
|
||||
//fin
|
||||
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
|
||||
|
||||
?>
|
@ -0,0 +1,228 @@
|
||||
<?php
|
||||
|
||||
class CtrlUtilisateur {
|
||||
|
||||
function __construct() {
|
||||
|
||||
global $rep,$vues;
|
||||
|
||||
$dVueErreur = array ();
|
||||
|
||||
try{
|
||||
$action=NULL;
|
||||
if(isset($_REQUEST['action'])){
|
||||
$action = $_REQUEST["action"];
|
||||
}
|
||||
|
||||
switch($action) {
|
||||
|
||||
case NULL:
|
||||
$this->ConsulterListePrive($dVueErreur);
|
||||
break;
|
||||
|
||||
case "logout":
|
||||
$this->SeDeconnecter($dVueErreur);
|
||||
break;
|
||||
|
||||
case "redirectionProfil":
|
||||
$this->redirectionProfil($dVueErreur);
|
||||
break;
|
||||
|
||||
case "supprimerCompte":
|
||||
$this->supprimerCompte($dVueErreur);
|
||||
break;
|
||||
|
||||
case "modifMdp":
|
||||
$this->changerMotDePasse($dVueErreur);
|
||||
break;
|
||||
|
||||
case "listePrive":
|
||||
$this->ConsulterListePrive($dVueErreur);
|
||||
break;
|
||||
|
||||
case "SupprimerTachePrive":
|
||||
$this->SupprimerTachePrive($dVueErreur);
|
||||
break;
|
||||
|
||||
case "AjouterTachePrive":
|
||||
$this->AjouterTachePrive($dVueErreur);
|
||||
break;
|
||||
|
||||
case "ModifierListePrive":
|
||||
$this->ModifierListePrive($dVueErreur);
|
||||
break;
|
||||
|
||||
case "checkPrive":
|
||||
$this->checkPrive($dVueErreur);
|
||||
break;
|
||||
|
||||
case "AjouterListePrive":
|
||||
$this->AjouterListePrive($dVueErreur);
|
||||
break;
|
||||
|
||||
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']);
|
||||
break;
|
||||
}
|
||||
|
||||
} catch (PDOException $e)
|
||||
{
|
||||
//si erreur BD, pas le cas ici
|
||||
$dVueErreur[] = "Erreur BD!!! ";
|
||||
require ($rep.$vues['erreur']);
|
||||
|
||||
}
|
||||
catch (Exception $e2)
|
||||
{
|
||||
$dVueErreur[] = "Erreur inattendue!!! ";
|
||||
require ($rep.$vues['erreur']);
|
||||
}
|
||||
|
||||
|
||||
//fin
|
||||
exit(0);
|
||||
}//fin constructeur
|
||||
|
||||
function SeDeconnecter(array $dVueErreur){
|
||||
global $rep,$vues;
|
||||
MdlUtilisateur::déconnexion();
|
||||
$action=NULL;
|
||||
require ($rep.$vues['login']);
|
||||
}
|
||||
|
||||
function redirectionProfil(array $dVueErreur){
|
||||
global $rep,$vues;
|
||||
$action=NULL;
|
||||
$user=MdlUtilisateur::isConnected();
|
||||
$nombreListe=MdlUtilisateur::recupererNombreDeListe();
|
||||
require ($rep.$vues['profil']);
|
||||
}
|
||||
|
||||
function supprimerCompte(array $dVueErreur){
|
||||
global $rep,$vues;
|
||||
$action=NULL;
|
||||
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 = MdlUtilisateur::RecupererTache();
|
||||
$action=NULL;
|
||||
require ($rep.$vues['listPrive']);
|
||||
}
|
||||
|
||||
function SupprimerTachePrive(array $dVueErreur){
|
||||
global $rep,$vues;
|
||||
$tache = MdlUtilisateur::SupprimerTache();
|
||||
$this->ConsulterListePrive($dVueErreur);
|
||||
}
|
||||
|
||||
function SupprimerListePrive(array $dVueErreur){
|
||||
global $rep,$vues;
|
||||
$liste = MdlUtilisateur::SupprimerListe();
|
||||
$this->ConsulterListePrive($dVueErreur);
|
||||
|
||||
}
|
||||
|
||||
public function AjouterTachePrive(array $dVueErreur){
|
||||
global $rep,$vues;
|
||||
try{
|
||||
$tache = MdlUtilisateur::AjouterTache($dVueErreur);
|
||||
$this->ConsulterListePrive($dVueErreur);
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$ErreurLog=$e->getMessage();
|
||||
$listesPrive= MdlUtilisateur::RecupererListePrive();
|
||||
$taches = MdlUtilisateur::RecupererTache();
|
||||
$action=NULL;
|
||||
require ($rep.$vues['listPrive']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function ModifierListePrive(array $dVueErreur){
|
||||
global $rep,$vues;
|
||||
try{
|
||||
$tache = MdlUtilisateur::ModifierListe($dVueErreur);
|
||||
$this->ConsulterListePrive($dVueErreur);
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$ErreurLog=$e->getMessage();
|
||||
$listesPrive= MdlUtilisateur::RecupererListePrive();
|
||||
$taches = MdlUtilisateur::RecupererTache();
|
||||
$action=NULL;
|
||||
require ($rep.$vues['listPublic']);
|
||||
}
|
||||
}
|
||||
|
||||
public function checkPrive(array $dVueErreur)
|
||||
{
|
||||
global $rep,$vues;
|
||||
$tache = MdlUtilisateur::check();
|
||||
$this->ConsulterListePrive($dVueErreur);
|
||||
}
|
||||
|
||||
public function AjouterListePrive(array $dVueErreur){
|
||||
global $rep,$vues;
|
||||
|
||||
try{
|
||||
$tache = MdlUtilisateur::AjouterListePrive($dVueErreur);
|
||||
$this->ConsulterListePrive($dVueErreur);
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$ErreurLog=$e->getMessage();
|
||||
$listes = MdlUtilisateur::RecupererListePrive();
|
||||
$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
|
||||
|
||||
?>
|
@ -0,0 +1,238 @@
|
||||
<?php
|
||||
|
||||
class CtrlVisiteur {
|
||||
|
||||
function __construct() {
|
||||
|
||||
global $rep,$vues;
|
||||
|
||||
$dVueErreur = array ();
|
||||
|
||||
try{
|
||||
$action=NULL;
|
||||
if(isset($_REQUEST['action'])){
|
||||
$action = $_REQUEST["action"];
|
||||
}
|
||||
|
||||
switch($action) {
|
||||
|
||||
//pas d'action, on réinitialise 1er appel
|
||||
case NULL:
|
||||
$this->ConsulterListePublic($dVueErreur);
|
||||
break;
|
||||
|
||||
case "validationFormulaire":
|
||||
$this->ValidationFormulaire($dVueErreur);
|
||||
break;
|
||||
|
||||
case "seConnecter":
|
||||
$this->seConnecter($dVueErreur);
|
||||
break;
|
||||
|
||||
case "redirectionListePublic":
|
||||
$this->ConsulterListePublic($dVueErreur);
|
||||
break;
|
||||
|
||||
case "redirectionLogin":
|
||||
$this->redirectionLogin($dVueErreur);
|
||||
break;
|
||||
|
||||
case "redirectionInscription":
|
||||
$this->redirectionInscription($dVueErreur);
|
||||
break;
|
||||
|
||||
case "SupprimerTache":
|
||||
$this->SupprimerTache($dVueErreur);
|
||||
break;
|
||||
|
||||
case "SupprimerListe":
|
||||
$this->SupprimerListe($dVueErreur);
|
||||
break;
|
||||
|
||||
case "AjouterTache":
|
||||
$this->AjouterTache($dVueErreur);
|
||||
break;
|
||||
|
||||
case "AjouterListePublic":
|
||||
$this->AjouterListePublic($dVueErreur);
|
||||
break;
|
||||
|
||||
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($dVueErreur);
|
||||
break;
|
||||
|
||||
//mauvaise action
|
||||
default:
|
||||
$dVueErreur[] = "Erreur d'appel php";
|
||||
require ($rep.$vues['erreur']);
|
||||
break;
|
||||
}
|
||||
|
||||
} catch (PDOException $e)
|
||||
{
|
||||
//si erreur BD, pas le cas ici
|
||||
$dVueErreur[] = "Erreur: Connexion a la base de données impossible! ";
|
||||
require ($rep.$vues['erreur']);
|
||||
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$dVueErreur[] = "Erreur venue de nulle part";
|
||||
require ($rep.$vues['erreur']);
|
||||
}
|
||||
|
||||
|
||||
//fin
|
||||
exit(0);
|
||||
}//fin constructeur
|
||||
|
||||
function ValidationFormulaire(array $dVueErreur) {
|
||||
global $rep,$vues;
|
||||
|
||||
try{
|
||||
$val = MdlVisiteur::CreerUtilisateur($dVueErreur);
|
||||
$result=MdlUtilisateur::Connection();
|
||||
$action=NULL;
|
||||
$this->ConsulterListePublic($dVueErreur);
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$ErreurLog=$e->getMessage();
|
||||
require ($rep.$vues['inscription']);
|
||||
}
|
||||
catch (PDOException $e)
|
||||
{
|
||||
$ErreurLog=$e->getMessage();
|
||||
require ($rep.$vues['inscription']);
|
||||
}
|
||||
}
|
||||
|
||||
function redirectionLogin(array $dVueErreur) {
|
||||
global $rep,$vues;
|
||||
require ($rep.$vues['login']);
|
||||
}
|
||||
|
||||
function redirectionInscription(array $dVueErreur) {
|
||||
global $rep,$vues;
|
||||
require ($rep.$vues['inscription']);
|
||||
}
|
||||
|
||||
function seConnecter(array $dVueErreur) {
|
||||
global $rep,$vues;
|
||||
try{
|
||||
$result=MdlUtilisateur::Connection();
|
||||
$action=NULL;
|
||||
$this->ConsulterListePublic($dVueErreur);
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$ErreurLog=$e->getMessage();
|
||||
require ($rep.$vues['login']);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function ConsulterListePublic(array $dVueErreur) {
|
||||
global $rep,$vues;
|
||||
$listes = MdlVisiteur::RecupererListePublic();
|
||||
$taches = MdlVisiteur::RecupererTache();
|
||||
$action=NULL;
|
||||
require ($rep.$vues['listPublic']);
|
||||
}
|
||||
|
||||
function SupprimerTache(array $dVueErreur){
|
||||
$tache = MdlVisiteur::SupprimerTache();
|
||||
$this->ConsulterListePublic($dVueErreur);
|
||||
}
|
||||
|
||||
function SupprimerListe(array $dVueErreur){
|
||||
global $rep,$vues;
|
||||
$liste = MdlVisiteur::SupprimerListe();
|
||||
$this->ConsulterListePublic($dVueErreur);
|
||||
}
|
||||
|
||||
public function AjouterTache(array $dVueErreur){
|
||||
global $rep,$vues;
|
||||
try{
|
||||
$tache = MdlVisiteur::AjouterTache($dVueErreur);
|
||||
$this->ConsulterListePublic($dVueErreur);
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$ErreurLog=$e->getMessage();
|
||||
$listes = MdlVisiteur::RecupererListePublic();
|
||||
$taches = MdlVisiteur::RecupererTache();
|
||||
$action=NULL;
|
||||
require ($rep.$vues['listPublic']);
|
||||
}
|
||||
}
|
||||
|
||||
public function AjouterListePublic(array $dVueErreur){
|
||||
global $rep,$vues;
|
||||
|
||||
try{
|
||||
$tache = MdlVisiteur::AjouterListePublic($dVueErreur);
|
||||
$this->ConsulterListePublic($dVueErreur);
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$ErreurLog=$e->getMessage();
|
||||
$listes = MdlVisiteur::RecupererListePublic();
|
||||
$taches = MdlVisiteur::RecupererTache();
|
||||
$action=NULL;
|
||||
require ($rep.$vues['listPublic']);
|
||||
}
|
||||
}
|
||||
|
||||
public function ModifierListe(array $dVueErreur){
|
||||
global $rep,$vues;
|
||||
try{
|
||||
$tache = MdlVisiteur::ModifierListe($dVueErreurs);
|
||||
$this->ConsulterListePublic($dVueErreur);
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$ErreurLog=$e->getMessage();
|
||||
$listes = MdlVisiteur::RecupererListePublic();
|
||||
$taches = MdlVisiteur::RecupererTache();
|
||||
$action=NULL;
|
||||
require ($rep.$vues['listPublic']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function check(array $dVueErreur)
|
||||
{
|
||||
$tache = MdlVisiteur::check();
|
||||
$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
|
||||
|
||||
?>
|
||||
|
@ -0,0 +1,69 @@
|
||||
<?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','pageSuivantePrive','pagePrécédentePrive','supprimerCompte','modifMdp' ,'listePrive','AjouterListePrive', 'checkPrive', 'SupprimerListePrive', 'AjouterTachePrive', 'ModifierListePrive', 'SupprimerTachePrive'),
|
||||
'Admin' => array('redirectionVueUtilisateur','SupprimerUtilisateur')
|
||||
);
|
||||
|
||||
//On récupère l'action
|
||||
$action=NULL;
|
||||
if(isset($_REQUEST['action'])){
|
||||
$action = $_REQUEST["action"];
|
||||
}
|
||||
|
||||
|
||||
//On vérifie si l'action fait partie des listes d'actions
|
||||
$string_actor=FrontControleur::quelListe($action,$listeActions);
|
||||
if($string_actor!=NULL){
|
||||
$class= 'Mdl'.$string_actor;
|
||||
$mdl=new $class();
|
||||
$actor=$mdl->isConnected();
|
||||
if($actor==NULL){
|
||||
require($rep.$vues['login']);
|
||||
}
|
||||
else{
|
||||
$ctrl='Ctrl'.$string_actor;
|
||||
new $ctrl();
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
new CtrlVisiteur();
|
||||
|
||||
} catch (Exception $e) {
|
||||
$dVueEreur[] = "Erreur inattendue!!! ";
|
||||
require ($rep.$vues['erreur']);
|
||||
} catch (PDOException $e)
|
||||
{
|
||||
//si erreur BD, pas le cas ici
|
||||
$dVueErreur[] = "Erreur: Connexion a la base de données impossible! ";
|
||||
require ($rep.$vues['erreur']);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public static function quelListe($action,$listeActions){
|
||||
foreach($listeActions as $a){
|
||||
if(in_array($action, $a)){
|
||||
return array_search($a,$listeActions);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
class MdlAdmin
|
||||
{
|
||||
|
||||
public function __construct(){
|
||||
|
||||
}
|
||||
|
||||
public function isConnected(){
|
||||
if(isset($_SESSION['id']) && isset($_SESSION['role']) && $_SESSION['role']=='admin') {
|
||||
$id=Validation::cleanInt($_SESSION['id']);
|
||||
$nom=Validation::cleanString($_SESSION['nom']);
|
||||
$prenom=Validation::cleanString($_SESSION['prenom']);
|
||||
$pseudo=Validation::cleanPseudo($_SESSION['pseudo']);
|
||||
$email=Validation::cleanMail($_SESSION['email']);
|
||||
return new Utilisateur($id,$nom,$prenom,$pseudo,$email);
|
||||
}
|
||||
else return null;
|
||||
}
|
||||
|
||||
public function recupererUtilisateur(){
|
||||
$userGtw = new UtilisateurGateway();
|
||||
return $userGtw->getUtilisateurs();
|
||||
}
|
||||
|
||||
public function supprimerUtilisateur(){
|
||||
$userGtw = new UtilisateurGateway();
|
||||
$userGtw->SupprimerUtilisateur($_GET['idUser']);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,158 @@
|
||||
<?php
|
||||
|
||||
class MdlUtilisateur
|
||||
{
|
||||
|
||||
public function __construct(){
|
||||
|
||||
}
|
||||
|
||||
public function connection(){
|
||||
$gtw=new UtilisateurGateway();
|
||||
$mail=Validation::cleanMail($_POST['mail']);
|
||||
$mdp=$_POST['password'];
|
||||
$verif_pass=$gtw->getCredentials($mail);
|
||||
if(password_verify($mdp,$verif_pass)){
|
||||
$userCurrent=$gtw->RechercheUtilisateurViaEmail($mail);
|
||||
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*');
|
||||
}
|
||||
|
||||
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::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 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");
|
||||
|
||||
}
|
||||
|
||||
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);
|
||||
$listGtw->Ajouter($nom, $description,0, $idCreateur);
|
||||
}
|
||||
|
||||
public static function RecupererListePrive(){
|
||||
$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);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,90 @@
|
||||
<?php
|
||||
|
||||
class MdlVisiteur
|
||||
{
|
||||
|
||||
public function __construct(){
|
||||
|
||||
}
|
||||
|
||||
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"]);
|
||||
$userGtw->isExisteViaPseudo($_POST["pseudo-Form"]);
|
||||
$hash = password_hash($_POST["password"], PASSWORD_DEFAULT);
|
||||
$userGtw->AjouterUtilisateur($_POST["nom-Form"],$_POST["prenom-Form"],$_POST["pseudo-Form"],$_POST["mail"],$hash);
|
||||
}
|
||||
|
||||
public static function RecupererListePublic(){
|
||||
$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(){
|
||||
$taskGtw = new TacheGateway();
|
||||
return $taskGtw->getTache();
|
||||
}
|
||||
|
||||
public static function SupprimerTache(){
|
||||
$taskGtw = new TacheGateway();
|
||||
$id = $_GET['idTache'];
|
||||
$taskGtw->Supprimer($id);
|
||||
}
|
||||
|
||||
public static function SupprimerListe(){
|
||||
$listGtw = new ListeGateway();
|
||||
$taskGtw = new TacheGateway();
|
||||
$id = $_GET['idListe'];
|
||||
$taskGtw->SupprimerViaListe($id);
|
||||
$listGtw->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);
|
||||
}
|
||||
|
||||
public function ModifierListe(&$dVueErreur){
|
||||
$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){
|
||||
$listGtw->EditerNom($id, $nom);
|
||||
}
|
||||
else if($nom == NULL){
|
||||
$listGtw->EditerDescription($id, $description);
|
||||
}
|
||||
else{
|
||||
$listGtw->Editer($id, $nom, $description);
|
||||
}
|
||||
}
|
||||
|
||||
public function AjouterListePublic(&$dVueErreur){
|
||||
$listGtw = new ListeGateway();
|
||||
$nom=$_POST['nom-ajout-liste'];
|
||||
$description=$_POST['description-ajout-liste'];
|
||||
Validation::val_form_add($nom,$description,$dVueErreur);
|
||||
$listGtw->Ajouter($nom, $description,1, 1);
|
||||
}
|
||||
|
||||
public static function check(){
|
||||
$taskGtw = new TacheGateway();
|
||||
$id = Validation::cleanInt($_POST['idTache']);
|
||||
$taskGtw->isDone($id);
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,69 @@
|
||||
<?php
|
||||
class ListeGateway{
|
||||
private $con;
|
||||
|
||||
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);';
|
||||
$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),
|
||||
));
|
||||
}
|
||||
|
||||
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),
|
||||
'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){
|
||||
$query='UPDATE ToDoList_Liste SET description=:description WHERE id=:id;';
|
||||
$this->con->executeQuery($query, array('description' => array($description, PDO::PARAM_STR), 'id' => array($id, PDO::PARAM_INT)));
|
||||
}
|
||||
|
||||
public function Supprimer(string $id){
|
||||
$query="DELETE FROM ToDoList_Liste WHERE id=:id";
|
||||
$this->con->executeQuery($query,array('id' => array($id, PDO::PARAM_INT)));
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
public function getListePrive($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;
|
||||
}
|
||||
}
|
||||
?>
|
@ -0,0 +1,60 @@
|
||||
<?php
|
||||
class TacheGateway{
|
||||
private $con;
|
||||
public function __construct(){
|
||||
global $dsn,$user,$pass;
|
||||
$this->con=new Connection($dsn,$user,$pass);
|
||||
}
|
||||
|
||||
|
||||
public function AjouterTache(string $nom, string $description, bool $estValide, string $idListe){
|
||||
$query='INSERT INTO ToDoList_Tache(nom, description, dateCreation,estValide, idListe) VALUES(:nom, :description, CURRENT_DATE, :estValide, :idListe);';
|
||||
$this->con->executeQuery($query, array(
|
||||
'nom' => array($nom, PDO::PARAM_STR),
|
||||
'description' => array($description, PDO::PARAM_STR),
|
||||
'estValide' => array($estValide, PDO::PARAM_BOOL),
|
||||
'idListe' => array($idListe, PDO::PARAM_INT)));
|
||||
}
|
||||
|
||||
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)));
|
||||
}
|
||||
|
||||
public function EditerNom(string $id, string $nom){
|
||||
$query='UPDATE ToDoList_Tache 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){
|
||||
$query='UPDATE ToDoList_Tache SET description=:description WHERE id=:id;';
|
||||
$this->con->executeQuery($query, array('description' => array($description, PDO::PARAM_STR), 'id' => array($id, PDO::PARAM_INT)));
|
||||
}
|
||||
|
||||
public function Supprimer(string $id){
|
||||
$query='DELETE FROM ToDoList_Tache WHERE id=:id;';
|
||||
$this->con->executeQuery($query,array('id' => array($id, PDO::PARAM_INT)));
|
||||
}
|
||||
|
||||
// Si une liste est supprimée on supprime toutes ces tâches grâce à cette fonction
|
||||
public function SupprimerViaListe(string $id){
|
||||
$query='DELETE FROM ToDoList_Tache WHERE idListe=:id;';
|
||||
$this->con->executeQuery($query,array('id' => array($id, PDO::PARAM_INT)));
|
||||
}
|
||||
|
||||
public function getTache(){
|
||||
$query='SELECT * FROM ToDoList_Tache;';
|
||||
$this->con->executeQuery($query);
|
||||
$taches = [];
|
||||
foreach ($this->con->getResults() as $tache) {
|
||||
$taches[] = new Tache($tache["id"],$tache["nom"],$tache["description"],$tache["dateCreation"],$tache["estValide"],$tache["idListe"]);
|
||||
}
|
||||
return $taches;
|
||||
}
|
||||
|
||||
public function isDone(string $id){
|
||||
$query = 'UPDATE ToDoList_Tache SET estValide = !estValide WHERE id=:id;';
|
||||
$this->con->executeQuery($query, array('id' => array($id, PDO::PARAM_STR)));
|
||||
}
|
||||
}
|
||||
?>
|
@ -0,0 +1,102 @@
|
||||
<?php
|
||||
class UtilisateurGateway{
|
||||
|
||||
private $con;
|
||||
public function __construct(){
|
||||
global $dsn,$user,$pass;
|
||||
$this->con=new Connection($dsn,$user,$pass);
|
||||
}
|
||||
|
||||
public function AjouterUtilisateur(string $nom,string $prenom, string $pseudo, string $email, string $mdp){
|
||||
$query="INSERT INTO ToDoList_Utilisateur(nom,prenom,pseudo,email,motDePasse) values (:nom,:prenom,:pseudo,:email,:mdp)";
|
||||
$this->con->executeQuery($query, array(
|
||||
'nom' => array($nom, PDO::PARAM_STR),
|
||||
'prenom' => array($prenom, PDO::PARAM_STR),
|
||||
'pseudo' => array($pseudo, PDO::PARAM_STR),
|
||||
'email' => array($email, PDO::PARAM_STR),
|
||||
'mdp' => array($mdp, PDO::PARAM_STR)));
|
||||
}
|
||||
|
||||
public function SupprimerUtilisateur(int $id){
|
||||
$query="DELETE FROM ToDoList_Utilisateur WHERE id=:id";
|
||||
$this->con->executeQuery($query, array(
|
||||
'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";
|
||||
$this->con->executeQuery($query, array('mail' => array($mail, PDO::PARAM_STR)));
|
||||
$results=$this->con->getResults();
|
||||
if($results!=null){
|
||||
throw new PDOException("Erreur l'email existe déjà*");
|
||||
}else{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// Vérifie que le pseudo n'existe pas
|
||||
public function isExisteViaPseudo($pseudo){
|
||||
$query="SELECT * FROM ToDoList_Utilisateur WHERE pseudo=:pseudo";
|
||||
$this->con->executeQuery($query, array('pseudo' => array($pseudo, PDO::PARAM_STR)));
|
||||
$results=$this->con->getResults();
|
||||
if($results!=null){
|
||||
throw new PDOException("Erreur le pseudo existe déjà*");
|
||||
}else{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// Récupère le mot de passe pour la connexion via le mail en paramètres
|
||||
public function getCredentials(string $mail){
|
||||
$query = 'SELECT motDePasse FROM ToDoList_Utilisateur WHERE email=:mail';
|
||||
$this->con->executeQuery($query, array('mail' => array($mail, PDO::PARAM_STR)));
|
||||
$results=$this->con->getResults();
|
||||
if($results!=null){
|
||||
return $results[0]['motDePasse'];
|
||||
}else{
|
||||
throw new Exception("Identifiant introuvable*");
|
||||
}
|
||||
}
|
||||
|
||||
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)));
|
||||
$results=$this->con->getResults();
|
||||
if($results!=null){
|
||||
return new Utilisateur($results[0]['id'],$results[0]['nom'],$results[0]['prenom'],$results[0]['pseudo'],$results[0]['email']);
|
||||
}else{
|
||||
throw new Exception("Identifiant introuvable*");
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
class Liste
|
||||
{
|
||||
private $id;
|
||||
private $nom;
|
||||
private $description;
|
||||
private $dateCreation;
|
||||
private $estPublic;
|
||||
private $idUtilisateur;
|
||||
|
||||
public function __construct($id, $nom, $description, $dateCreation, $estPublic, $idUtilisateur){
|
||||
$this->id = $id;
|
||||
$this->nom = $nom;
|
||||
$this->description = $description;
|
||||
$this->dateCreation = $dateCreation;
|
||||
$this->estPublic = $estPublic;
|
||||
$this->idUtilisateur = $idUtilisateur;
|
||||
}
|
||||
|
||||
//Id
|
||||
public function getId(){
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function setId($id){
|
||||
$this->id=$id;
|
||||
}
|
||||
|
||||
//Nom
|
||||
public function getNom(){
|
||||
return $this->nom;
|
||||
}
|
||||
|
||||
public function getDescription(){
|
||||
return $this->description;
|
||||
}
|
||||
|
||||
public function setNom($nom){
|
||||
$this->nom=$nom;
|
||||
}
|
||||
|
||||
//DateCreation
|
||||
public function getDateCreation(){
|
||||
return $this->dateCreation;
|
||||
}
|
||||
|
||||
public function setDateCreation($dateCreation){
|
||||
$this->dateCreation = $dateCreation;
|
||||
}
|
||||
|
||||
//EstPublic
|
||||
public function getEstPublic(){
|
||||
return $this->estPublic;
|
||||
}
|
||||
|
||||
public function setEstPublic($estPublic){
|
||||
$this->estPublic = $estPublic;
|
||||
}
|
||||
|
||||
//idUtilisateur
|
||||
public function getIdUtilisateur(){
|
||||
return $this->idUtilisateur;
|
||||
}
|
||||
|
||||
public function setIdUtilisateur($idUtilisateur){
|
||||
$this->idUtilisateur = $idUtilisateur;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,75 @@
|
||||
<?php
|
||||
|
||||
class Tache
|
||||
{
|
||||
private $id;
|
||||
private $nom;
|
||||
private $description;
|
||||
private $dateCreation;
|
||||
private $estValide;
|
||||
private $idListe;
|
||||
|
||||
public function __construct($id, $nom, $description,$dateCreation, $estValide,$idListe){
|
||||
$this->id = $id;
|
||||
$this->nom = $nom;
|
||||
$this->description = $description;
|
||||
$this->dateCreation = $dateCreation;
|
||||
$this->estValide = $estValide;
|
||||
$this->idListe = $idListe;
|
||||
}
|
||||
|
||||
//Id
|
||||
public function getid(){
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function setId($id){
|
||||
$this->id=$id;
|
||||
}
|
||||
|
||||
//Nom
|
||||
public function getNom(){
|
||||
return $this->nom;
|
||||
}
|
||||
|
||||
public function setNom($nom){
|
||||
$this->nom=$nom;
|
||||
}
|
||||
|
||||
//Description
|
||||
public function getDescription(){
|
||||
return $this->description;
|
||||
}
|
||||
|
||||
public function setDescription($description){
|
||||
$this->description=$description;
|
||||
}
|
||||
|
||||
//DateCreation
|
||||
public function getDateCreation(){
|
||||
return $this->dateCreation;
|
||||
}
|
||||
|
||||
public function setDateCreation($dateCreation){
|
||||
$this->dateCreation = $dateCreation;
|
||||
}
|
||||
|
||||
//EstValide
|
||||
public function getEstValide(){
|
||||
return $this->estValide;
|
||||
}
|
||||
|
||||
public function setEstValide($estValide){
|
||||
$this->estValide = $estValide;
|
||||
}
|
||||
|
||||
//idList
|
||||
public function getIdListe(){
|
||||
return $this->idListe;
|
||||
}
|
||||
|
||||
public function setIdListe($idListe){
|
||||
$this->idListe = $idListe;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
class Utilisateur
|
||||
{
|
||||
private $id;
|
||||
private $nom;
|
||||
private $prenom;
|
||||
private $pseudo;
|
||||
private $email;
|
||||
|
||||
public function __construct($id, $nom, $prenom, $pseudo, $email){
|
||||
$this->id = $id;
|
||||
$this->nom = $nom;
|
||||
$this->prenom = $prenom;
|
||||
$this->pseudo = $pseudo;
|
||||
$this->email = $email;
|
||||
}
|
||||
|
||||
//Nom
|
||||
public function getId(){
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function setId($id){
|
||||
$this->nom = $id;
|
||||
}
|
||||
|
||||
//Nom
|
||||
public function getNom(){
|
||||
return $this->nom;
|
||||
}
|
||||
|
||||
public function setNom($nom){
|
||||
$this->nom = $nom;
|
||||
}
|
||||
|
||||
//Prenom
|
||||
public function getPrenom(){
|
||||
return $this->prenom;
|
||||
}
|
||||
|
||||
public function setPrenom($prenom){
|
||||
$this->prenom = $prenom;
|
||||
}
|
||||
|
||||
//Pseudo
|
||||
public function getPseudo(){
|
||||
return $this->pseudo;
|
||||
}
|
||||
|
||||
public function setPseudo($pseudo){
|
||||
$this->pseudo = $pseudo;
|
||||
}
|
||||
|
||||
//mail
|
||||
public function getMail(){
|
||||
return $this->email;
|
||||
}
|
||||
|
||||
public function setEmail($email){
|
||||
$this->email = $email;
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 1.4 MiB After Width: | Height: | Size: 1.4 MiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 6.1 KiB |
@ -0,0 +1,3 @@
|
||||
input[type="checkbox"]:checked + label {
|
||||
text-decoration: line-through;
|
||||
}
|
@ -0,0 +1,63 @@
|
||||
<div class="header">
|
||||
<div class="menu-bar" >
|
||||
<section class="fixed-top">
|
||||
<nav class="navbar navbar-expand-lg bg-info ">
|
||||
<img src="./vue/Images/LogoForHome.png" width="200">
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<i class="fa fa-bars"></i>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
|
||||
<style>
|
||||
.fa {
|
||||
color: white;
|
||||
font-size: 26px;
|
||||
}
|
||||
.nav-link:hover {
|
||||
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>
|
||||
function myFunction() {
|
||||
let text = "Voulez-vous vraiment vous déconnecter?!\n";
|
||||
if (confirm(text) == true) {
|
||||
location.replace("logout")
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<?php
|
||||
} else {
|
||||
?> <h5><a class="nav-item btn btn-outline-light" href="login">Se connecter</a></h5>
|
||||
<h5><a class="nav-item nav-link text-light" href="inscription">S'inscrire</a></h5>
|
||||
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,356 @@
|
||||
<!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>
|
||||
|
||||
<button class="btn btn-default" data-toggle="modal" data-target="#formulaireAjoutListe">
|
||||
Ajouter une liste
|
||||
<img src="./vue/Images/plus.png" width="20" />
|
||||
</button>
|
||||
|
||||
<div class="container">
|
||||
<div class="modal fade" id="formulaireAjoutListe">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">Ajout d'une liste</h4>
|
||||
<button type="button" class="close" data-dismiss="modal">
|
||||
<span>×</span>
|
||||
</button>
|
||||
</div>
|
||||
<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">Nom</label>
|
||||
<input type="text" class="form-control" name ="nom-ajout-liste" id="nom" placeholder="Entrez un nom">
|
||||
</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-liste" id="description" placeholder="Entrez une description">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary pull-right">Ajouter</button>
|
||||
<input type="hidden" name="action" value="AjouterListePrive">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
foreach($listesPrive as $liste){
|
||||
if($liste->getIdUtilisateur() == $_SESSION['id']){
|
||||
|
||||
$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 -->
|
||||
|
||||
<div class="container py-2 h-100">
|
||||
<div class="row d-flex justify-content-center align-items-center h-100">
|
||||
<div class="col col-lg-8 col-xl-6">
|
||||
<div class="card rounded-3">
|
||||
<div class="card-body p-4">
|
||||
<div>
|
||||
<p class="mb-2">
|
||||
<span class="h2 me-2 text-info"><?= $liste->getNom()?>
|
||||
<a href="index.php?action=SupprimerListePrive&idListe=<?= $liste->getId() ?>">
|
||||
<button class="btn btn-default">
|
||||
<img src="./vue/Images/trash.png" width="20" />
|
||||
</button>
|
||||
</a>
|
||||
<button data-toggle="modal" data-target="#formulaireModif<?= $liste->getId()?>" class="btn btn-default">
|
||||
<img src="./vue/Images/edit.png" width="20" />
|
||||
</button>
|
||||
|
||||
<button data-toggle="modal" data-target="#formulaireAjout<?= $liste->getId()?>" class="btn btn-default">
|
||||
<img src="./vue/Images/plus.png" width="20" />
|
||||
</button>
|
||||
</span>
|
||||
</p>
|
||||
<p><span class="h5 me-2"><?= $liste->getDescription()?></span>
|
||||
<p class="text-muted pb-2"><?= $liste->getDateCreation()?> by <strong><?= $_SESSION['pseudo'] ?></strong> </p>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Fenetre modal -->
|
||||
|
||||
<div class="container">
|
||||
<div class="modal fade" id="formulaireAjout<?= $liste->getId()?>">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">Ajout d'une tache</h4>
|
||||
<button type="button" class="close" data-dismiss="modal">
|
||||
<span>×</span>
|
||||
</button>
|
||||
</div>
|
||||
<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">Nom</label>
|
||||
<input type="text" class="form-control" name ="nom-ajout" id="nom" placeholder="Entrez un nom">
|
||||
</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">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary pull-right">Ajouter</button>
|
||||
<input type="hidden" name="action" value="AjouterTachePrive">
|
||||
<input type="hidden" name="idListe" value="<?= $liste->getId() ?>">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="container">
|
||||
<div class="modal fade" id="formulaireModif<?= $liste->getId()?>">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">Modification</h4>
|
||||
<button type="button" class="close" data-dismiss="modal">
|
||||
<span>×</span>
|
||||
</button>
|
||||
</div>
|
||||
<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>
|
||||
<button type="submit" class="btn btn-primary pull-right">Modifier</button>
|
||||
<input type="hidden" name="action" value="ModifierListePrive">
|
||||
<input type="hidden" name="idListe" value="<?= $liste->getId() ?>">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Tache -->
|
||||
|
||||
<ul class="list-group rounded-0">
|
||||
<?php
|
||||
foreach($taches as $tache){
|
||||
|
||||
if($tache->getIdListe() == $liste->getId()){
|
||||
if($tache->getEstValide() == 1){
|
||||
$done = $done + 1;
|
||||
}
|
||||
$total = $total + 1;
|
||||
?>
|
||||
<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>
|
||||
<a href="index.php?action=SupprimerTachePrive&idTache=<?= $tache->getId() ?>">
|
||||
<button class="btn btn-default">
|
||||
<img src="./vue/Images/trash.png" width="20" />
|
||||
</button>
|
||||
</a>
|
||||
</li>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<?php
|
||||
if($total != 0){
|
||||
$pourcentage = $done * 100 / $total;
|
||||
} else{
|
||||
$pourcentage = 0;
|
||||
}
|
||||
?>
|
||||
<div class="progress-bar progress-bar-striped" role="progressbar" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100" style="width: <?php echo"$pourcentage" ?>%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<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="previousPagePrive">Previous</a>
|
||||
</li>
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="nextPagePrive">Next</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</body>
|
||||
|
||||
<!-- Footer -->
|
||||
<footer class="text-center text-lg-start bg-light sticky-bottom">
|
||||
<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>
|
@ -0,0 +1,340 @@
|
||||
<!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="./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 */
|
||||
-ms-user-select: none; /* IE 10 and IE 11 */
|
||||
user-select: none;">
|
||||
<?php require($rep.$vues['NavBar']); ?>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<button class="btn btn-default" data-toggle="modal" data-target="#formulaireAjoutListe">
|
||||
Ajouter une liste
|
||||
<img src="./vue/Images/plus.png" width="20" />
|
||||
</button>
|
||||
|
||||
<div class="container">
|
||||
<div class="modal fade" id="formulaireAjoutListe">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">Ajout d'une liste</h4>
|
||||
<button type="button" class="close" data-dismiss="modal">
|
||||
<span>×</span>
|
||||
</button>
|
||||
</div>
|
||||
<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">Nom</label>
|
||||
<input type="text" class="form-control" name ="nom-ajout-liste" id="nom" placeholder="Entrez un nom">
|
||||
</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-liste" id="description" placeholder="Entrez une description">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary pull-right">Ajouter</button>
|
||||
<input type="hidden" name="action" value="AjouterListePublic">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
foreach($listes as $liste){
|
||||
$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 listes -->
|
||||
|
||||
<div class="container py-2 h-100">
|
||||
<div class="row d-flex justify-content-center align-items-center h-100">
|
||||
<div class="col col-lg-8 col-xl-6">
|
||||
<div class="card rounded-3">
|
||||
<div class="card-body p-4">
|
||||
<div>
|
||||
<p class="mb-2">
|
||||
<span class="h2 me-2 text-info"><?= $liste->getNom()?>
|
||||
<a href="index.php?action=SupprimerListe&idListe=<?= $liste->getId() ?>">
|
||||
<button class="btn btn-default">
|
||||
<img src="./vue/Images/trash.png" width="20" />
|
||||
</button>
|
||||
</a>
|
||||
<button data-toggle="modal" data-target="#formulaireModif<?= $liste->getId()?>" class="btn btn-default">
|
||||
<img src="./vue/Images/edit.png" width="20" />
|
||||
</button>
|
||||
|
||||
<button data-toggle="modal" data-target="#formulaireAjout<?= $liste->getId()?>" class="btn btn-default">
|
||||
<img src="./vue/Images/plus.png" width="20" />
|
||||
</button>
|
||||
</span>
|
||||
</p>
|
||||
<p><span class="h5 me-2"><?= $liste->getDescription()?></span>
|
||||
<p class="text-muted pb-2"><?= $liste->getDateCreation()?></p>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Fenetre modal -->
|
||||
|
||||
<div class="container">
|
||||
<div class="modal fade" id="formulaireAjout<?= $liste->getId()?>">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">Ajout d'une tache</h4>
|
||||
<button type="button" class="close" data-dismiss="modal">
|
||||
<span>×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body row">
|
||||
<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" 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" required autofocus>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary pull-right">Ajouter</button>
|
||||
<input type="hidden" name="action" value="AjouterTache">
|
||||
<input type="hidden" name="idListe" value="<?= $liste->getId() ?>">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="container">
|
||||
<div class="modal fade" id="formulaireModif<?= $liste->getId()?>">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">Modification</h4>
|
||||
<button type="button" class="close" data-dismiss="modal">
|
||||
<span>×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body row">
|
||||
<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() ?>">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<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>
|
||||
<button type="submit" class="btn btn-primary pull-right">Modifier</button>
|
||||
<input type="hidden" name="action" value="ModifierListe">
|
||||
<input type="hidden" name="idListe" value="<?= $liste->getId() ?>">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Tache -->
|
||||
|
||||
<ul class="list-group rounded-0">
|
||||
<?php
|
||||
foreach($taches as $tache){
|
||||
|
||||
if($tache->getIdListe() == $liste->getId()){
|
||||
if($tache->getEstValide() == 1){
|
||||
$done = $done + 1;
|
||||
}
|
||||
$total = $total + 1;
|
||||
?>
|
||||
|
||||
<li class="list-group-item border-0 d-flex align-items-center ps-0">
|
||||
<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>
|
||||
<a href="index.php?action=SupprimerTache&idTache=<?= $tache->getId() ?>">
|
||||
<button class="btn btn-default">
|
||||
<img src="./vue/Images/trash.png" width="20" />
|
||||
</button>
|
||||
</a>
|
||||
</li>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<?php
|
||||
if($total != 0){
|
||||
$pourcentage = $done * 100 / $total;
|
||||
} else{
|
||||
$pourcentage = 0;
|
||||
}
|
||||
?>
|
||||
<div class="progress-bar progress-bar-striped" role="progressbar" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100" style="width: <?php echo"$pourcentage" ?>%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
<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="previousPage">Previous</a>
|
||||
</li>
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="nextPage">Next</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<!-- Footer -->
|
||||
<footer class="text-center text-lg-start bg-light sticky-bottom">
|
||||
<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>
|
@ -0,0 +1,30 @@
|
||||
<!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>Erreur Page</title>
|
||||
<!-- CSS only -->
|
||||
<link rel="stylesheet" href="./vue/css/style.css">
|
||||
<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>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="model">
|
||||
<h1>Un problème est survenue !</h1>
|
||||
<?php
|
||||
if (isset($dVueErreur)) {
|
||||
foreach ($dVueErreur as $value){
|
||||
echo $value;
|
||||
}
|
||||
}
|
||||
?>
|
||||
<a href="VueListePublic">Revenir</a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +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">
|
||||
<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['prenom'])){?>
|
||||
<center><p class="ErreurText"> <?php echo $dVueErreur['prenom']?></p></center><?php
|
||||
}
|
||||
?>
|
||||
<div>
|
||||
<input type="text" name="prenom-Form" placeholder="Prenom" required autofocus>
|
||||
</div>
|
||||
</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>
|
||||
</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>
|
@ -0,0 +1,125 @@
|
||||
<!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>Profil 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>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<section style="background-color: white;">
|
||||
<div class="container py-5">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<nav aria-label="breadcrumb" class="bg-info rounded-3 p-3 mb-4">
|
||||
<ol class="breadcrumb mb-0">
|
||||
<li class="breadcrumb-item"><a href="VueListePublic">Home</a></li>
|
||||
<li class="breadcrumb-item"><a href="#">User</a></li>
|
||||
<li class="breadcrumb-item active" aria-current="page">User Profile</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-15">
|
||||
<div class="card mb-1">
|
||||
<div class="card-body">
|
||||
<div class="col-sm-15 text-center">
|
||||
<p class="mb-0">Nom Prénom</p>
|
||||
</div>
|
||||
<div class="col-sm-14 text-center">
|
||||
<p class="text-muted mb-0"><?php echo $user->getNom().' '.$user->getPrenom()?></p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="col-sm-15 text-center">
|
||||
<p class="mb-0">Pseudo</p>
|
||||
</div>
|
||||
<div class="col-sm-14 text-center">
|
||||
<p class="text-muted mb-0"><?php echo $user->getPseudo()?></p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="col-sm-15 text-center">
|
||||
<p class="mb-0">Email</p>
|
||||
</div>
|
||||
<div class="col-sm-14 text-center">
|
||||
<p class="text-muted mb-0"><?php echo $user->getMail()?></p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="col-sm-15 text-center">
|
||||
<p class="mb-0">Nombre de liste</p>
|
||||
</div>
|
||||
<div class="col-sm-14 text-center">
|
||||
<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="#" 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="#modalSupp">
|
||||
Supprimer le compte
|
||||
</a>
|
||||
|
||||
<!-- 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">×</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">
|
||||
<h5 class="modal-title" id="exampleModalLabel">Suppression du compte</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
Êtes-vous sûr de vouloir supprimer votre compte ?
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<a href="supprimerCompte" class="btn btn-danger">Supprimer quand même</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</body>
|
||||
</html>
|