cookies(): Vérifie si des cookies sont présents, et si oui s'ils sont valides pour connecter l'utilisateur (fonction placée dans l'entête des pages)connexion(): Gère la connexion d'un utilisateur (formulaire + session + cookie)modif_profile(): Permet à un utilisateur de modifier ses informations de profilinscription(): Valide les données et crée un nouvel utilisateur avec mot de passe haché
get(): Récupère la liste des utilisateurs depuis un fichier JSONcount(): Retourne le nombre d'utilisateursput(): Sauvegarde la liste modifiée dans le fichier JSONaddUser($data): Ajoute un nouvel utilisateurremoveUser($id): Supprime un utilisateur par IDunser_exists($id): Vérifie l'existence d'un utilisateuricon(): Retourne l'icône à afficher selon le rôle ou véhicule de l'utilisateur
get(): Récupère les annonces depuis le fichier JSONput(): Sauvegarde les annonces dans le fichier JSONremove($id): Supprime une annonce à partir de son IDcount(): Retourne le nombre d'annoncesadd(): Ajoute une annonce à partir de données POSTnbr_inscrit($id_annonce): Retourne le nombre d'inscrits à une annoncereservation($nom_user): Gère l'ajout ou le retrait d'une réservationuser_event(): Retourne un JSON des trajets réservés par un utilisateur (pour le calendrier)
parametres($title): Charge les paramètres globaux de la page (titre, balises meta)entete(): Affiche le header avec avatar et connexionnav(): Affiche la barre de navigation selon le rôle connectéactive(): Détermine la page activepieddepage(): Affiche le footer avec date, IP, port, heure
| Utilisateur | Mot de passe | Rôle |
|---|---|---|
| admin | motdepasse | admin |
| modo | motdepasse | modo |
| user | motdepasse | user |
| tristan | bonjour | user |
Les comptes sont définis dans
data/r209-tp_utilisateurs.json.
- Connexion, déconnexion, cookie
- Création de compte avec validation des données
- Ajout, modification, suppression d'annonces (selon droits)
- Réservations sur annonces (ajout/retrait)
- Affichage d’un calendrier dynamique (FullCalendar) des trajets réservés
- Affichage des actions selon l'utilisateur connecté (rôle ou propriétaire)
- Navigation dynamique avec Bootstrap et templates
- Pas d'historique ou de notifications pour les réservations
- Pas de système de confirmation (Sauf suppression des utilisateurs pour les admins)
- Le système d’inscription ne vérifie pas les doublons d’e-mail
- Aucune pagination ni recherche dynamique (hors front-end)
- Les données sont stockées en JSON (pas de base de données)
- Les cookies sont sécurisés avec un
hash_hmac()pour éviter la falsification users::icon()choisit une icône selon le rôle (admin/modo) ou véhicule (user)- Le calendrier utilise
FullCalendaret charge les données viauser_event() - Bootstrap 5 est utilisé pour toute la mise en page
- L'accès à certaines fonctionnalités est strictement basé sur le rôle via
$_SESSION["role"]
Ce document est à jour avec le fichier functions.php actuel. Il peut servir de référence pour les développeurs, testeurs ou relecteurs du projet.