Nettoyage du code, fix de petits bugs.

Co-authored-by: Charpentier Juliette <juliette.charpentier1@etu.u-pec.fr
This commit is contained in:
Loris BALOCCHI 2024-06-16 17:17:55 +02:00
parent 5f8e3e6dbc
commit cfb9825a59
21 changed files with 5843 additions and 835 deletions

View File

@ -67,8 +67,9 @@ if (isset($_COOKIE['userData'])) {
<input type="text" id="family_name" name="family_name" value="<?php echo $familyName ?>">
</div>
<div class="form-group">
<label for="email"><span style="color:red;"><abbr title="Requis">*</abbr></span> Adresse mail</label>
<input type="email" id="email" name="email" value="<?php echo $email ?>">
<label for="email">Adresse mail</label>
<input type="email" id="email" name="email" value="<?php echo $email ?>" disabled
style="cursor: not-allowed;">
</div>
<div class="form-group">
<label for="password"><span style="color:red;"><abbr title="Requis">*</abbr></span> Mot de passe</label>

View File

@ -1,14 +1,6 @@
<?php
require_once $_SERVER['DOCUMENT_ROOT'] . '/tools/dbConnect.php';
/*
- prénom, nom, mail, mdp, code rôle
- vérifier que le mail n'existe pas déjà
- vérifier que le code rôle est correct, et affecter le rôle correspondant
- hasher le mdp
- enregistrer le nouvel utilisateur dans la bdd
- créer un cookie avec mail, nom, prénom, rôle. Qui expire dans 1h
*/
include ($_SERVER['DOCUMENT_ROOT'] . '/views/header.php');
if ($_SERVER["REQUEST_METHOD"] == "POST") {
@ -21,8 +13,11 @@ if ($_SERVER["REQUEST_METHOD"] == "POST") {
$hashedPassword = sha1($password);
$query = "SELECT mail FROM user WHERE mail = '$email'";
$result = mysqli_query($db, $query);
$query = "SELECT mail FROM user WHERE mail = ?";
$stmt = mysqli_prepare($db, $query);
mysqli_stmt_bind_param($stmt, "s", $email);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
if (!$result) {
die("Erreur lors de l'exécution de la requête.");
@ -53,16 +48,13 @@ if (!$resultAddUser) {
if (mysqli_affected_rows($db) > 0) {
echo "<p class='text'>Utilisateur créé avec succès. </p>";
// Créer un tableau avec les données utilisateur
$userData = array(
"email" => $email,
"name" => $name,
"familyName" => $familyName,
"role" => $role,
);
// Sérialiser le tableau en JSON
$userDataEncoded = json_encode($userData);
// Stocker les données sérialisées dans un cookie
setcookie("userData", $userDataEncoded, time() + 3600, "/");
echo "<p class='text'>Cookie créé avec succès. Contenu du cookie :</p>";
@ -82,8 +74,5 @@ if (!$resultAddUser) {
}
}
include ($_SERVER['DOCUMENT_ROOT'] . '/views/footer.php');
?>

View File

@ -43,9 +43,19 @@ if (isset($_COOKIE['userData'])) {
}
$role = $userData['role'];
$stmt = mysqli_prepare($db, "SELECT * FROM user WHERE mail = ?");
mysqli_stmt_bind_param($stmt, "s", $email);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
while ($row = mysqli_fetch_assoc($result)) {
$role = $row["role"];
}
if ($role != 'Administrateur') {
echo "<p class='text'>Vous n'êtes pas autorisé à accéder à cette page.</p>";
echo "<p class='text'>Redirection vers l'accueil dans 5 secondes...</p>";
//remet à jour le cookie de l'utilisateur pour remettre son rôle à jour
setcookie('userData', json_encode(array('email' => $email, 'name' => $name, 'familyName' => $familyName, 'role' => $role)), time() + 365 * 24 * 3600, '/');
header("refresh:5; url=/");
die();
} else { // Si l'utilisateur est un administrateur : accès à la page

View File

@ -33,8 +33,6 @@ if (isset($_COOKIE['userData'])) {
<body>
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/header.php') ?>
<!-- code de la page ici -->
<!-- en t'appuyant sur la page /register/index.php, crée une page permettant de créer un utilisateur
(avec menu déroulant pour le choix du rôle, à la place du code role) -->
<div class="login-container">
<img src="https://cdn-icons-png.flaticon.com/512/4139/4139948.png" alt="Avatar">
<h2>Créer un compte</h2>

View File

@ -4,7 +4,7 @@ session_start();
if (isset($_COOKIE['userData'])) {
$userDataEncoded = $_COOKIE['userData'];
$userData = json_decode($userDataEncoded, true); // 'true' pour obtenir un tableau associatif
$userData = json_decode($userDataEncoded, true);
$email = $userData['email'];
$name = $userData['name'];
@ -20,14 +20,11 @@ if (isset($_COOKIE['userData'])) {
// script php ici
if (isset($_GET['oldemail'])) {
// faire requete préparée à la bdd avec le mail, afin de supprimer l'utilisateur qui porte ce mail.
$userEmail = htmlspecialchars($_GET['oldemail']);
$stmt = mysqli_prepare($db, "DELETE FROM user WHERE mail=?");
mysqli_stmt_bind_param($stmt, 's', $userEmail);
$result = mysqli_stmt_execute($stmt);
// si résultat de la requete renvoie != 0,
echo "<p class='text'>L'utilisateur " . $userEmail . " a bien été supprimé.</p>";
// rediriger l'utilisateur vers la page de gestion des utilisateurs
include ($_SERVER['DOCUMENT_ROOT'] . '/views/footer.php');
header("Location: /admin/users/?res=$userEmail");
die();

View File

@ -1,10 +1,9 @@
<?php
require_once $_SERVER['DOCUMENT_ROOT'] . '/tools/dbConnect.php';
session_start();
if (isset($_COOKIE['userData'])) {
$userDataEncoded = $_COOKIE['userData'];
$userData = json_decode($userDataEncoded, true); // 'true' pour obtenir un tableau associatif
$userData = json_decode($userDataEncoded, true);
$email = $userData['email'];
$name = $userData['name'];
@ -16,45 +15,34 @@ if ($_SERVER["REQUEST_METHOD"] == "POST") {
$userName = htmlspecialchars($_POST["name"]);
$userFamilyName = htmlspecialchars($_POST["family_name"]);
$userEmail = htmlspecialchars($_POST["email"]);
$userPassword = isset($_POST["password"]) ? htmlspecialchars($_POST["password"]) : "";
$userUserRole = htmlspecialchars($_POST["role"]);
$hashedPassword = sha1($userPassword);
$query = "SELECT mail FROM user WHERE mail = '$userEmail'";
$result = mysqli_query($db, $query);
$row = mysqli_fetch_assoc($result);
if ($row) {
die("<p>Un utilisateur avec cette adresse mail existe déjà.</p>");
}
}
if (!$result) {
die("Erreur lors de l'exécution de la requête.");
}
$editUser = "UPDATE `user` SET `mail`='$userEmail', `name`='$userName', `family_name`='$userFamilyName', `role`='$userUserRole' WHERE `mail`='$userEmail'";
$stmt = $db->prepare("UPDATE `user` SET `name`=?, `family_name`=?, `role`=? WHERE `mail`=?");
$stmt->bind_param("ssss", $userName, $userFamilyName, $userUserRole, $userEmail);
$resultEditUser = $stmt->execute();
$resultEditUser = mysqli_query($db, $editUser);
if (!$resultEditUser) {
echo "<p class='text'>Erreur lors de l'exécution de la requête.</p>";
} else {
if (mysqli_affected_rows($db) > 0) {
echo "<p class='text'>Utilisateur créé avec succès. </p>";
if ($stmt->affected_rows > 0) {
echo "<p class='text'>L'utilisateur a bien été modifié.</p>";
echo "<p class='text'>Prénom : " . $userName . "</p>";
echo "<p class='text'>Nom : " . $userFamilyName . "</p>";
echo "<p class='text'>Adresse mail : " . $userEmail . "</p>";
echo "<p class='text'>Mot de passe : " . $userPassword . "</p>";
echo "<p class='text'>Mot de passe hashé : " . $hashedPassword . "</p>";
echo "<p class='text'>Rôle : " . $userUserRole . "</p>";
include ($_SERVER['DOCUMENT_ROOT'] . '/tools/discordWebhookRegister.php');
header("Location: /admin/users/edit?usermail=$userEmail");
$stmt->close();
header("Location: /admin/users/edit?usermail=$userEmail&success=true");
die();
} else {
echo "<p class='text'>Aucun utilisateur n\'a été ajouté.</p>";
echo "<p class='text'>Aucune modification n'a été effectuée.</p>";
$stmt->close();
header("Location: /admin/users/edit?usermail=$userEmail&success=false");
die();
}
}
?>

View File

@ -11,12 +11,6 @@ if ($userDataEncoded) {
$familyName = $userData['familyName'];
$role = $userData['role'];
}
//faire le nécessaire epour récup le mail donné en valriable dans l'url dans $userEmail
// requete préparée sql pour obtenir les infos de l'utilisateur à partir du mail
// tu auras des variuables qui contiendront les informations de l'utilisateur, tu n'as plus qu'à
// les afficher correctement dans les cases. Laisse son role d'affiché, mais mets juste en dessous un
// menu déroulant avec tous les 4 rôles possibles
if (isset($_GET['usermail'])) {
$userEmail = $_GET['usermail'];
@ -61,53 +55,70 @@ if (isset($_GET['usermail'])) {
<body>
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/header.php'); ?>
<h1>Profil de l'utilisateur :</h1>
<?php
$role = $userData['role'];
echo "<p class='text'>Rôle du cookie : $role</p>";
$stmt = mysqli_prepare($db, "SELECT * FROM user WHERE mail = ?");
mysqli_stmt_bind_param($stmt, "s", $email);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
while ($row = mysqli_fetch_assoc($result)) {
$role = $row["role"];
echo "<p class='text'>Rôle actuel : $role</p>";
}
if ($role != 'Administrateur') {
echo "<p class='text'>Vous n'êtes pas autorisé à accéder à cette page.</p>";
echo "<p class='text'>Redirection vers l'accueil dans 5 secondes...</p>";
//remet à jour le cookie de l'utilisateur pour remettre son rôle à jour
setcookie('userData', json_encode(array('email' => $email, 'name' => $name, 'familyName' => $familyName, 'role' => $role)), time() + 365 * 24 * 3600, '/');
<div class="login-container" style="margin-top: 1rem;">
<img src="https://cdn-icons-png.flaticon.com/512/4139/4139948.png" alt="Avatar">
<h2>Mettre à jour ces informations</h2>
<p>Modifiez les informations de ce profil.</p>
<?php
echo "<p class='text' >Vous modifiez actuellement le profil de l'utilisateur $userEmail.</p>";
echo "<p class='text' >Ce profil est actuellement de type $userRole.</p>";
echo "<p class='text'>" . $userFirstName . " " . $userFamilyName . "</p>";
echo "<p class='text'>" . $userEmail . "</p>";
header("refresh:5; url=/");
die();
} else {
echo "<div class='login-container' style='margin-top: 1rem;'>";
echo "<img src='https://cdn-icons-png.flaticon.com/512/4139/4139948.png' alt='Avatar'>";
echo "<h2>Mettre à jour ces informations</h2>";
echo "<p>Modifiez les informations de ce profil.</p>";
?>
<form action="/admin/users/edit/edit.php" method="post">
<div class="form-group">
<label for="name"><span style="color:red;"><abbr title="Requis">*</abbr></span> Prénom</label>
<input type="text" id="name" name="name" value="<?php echo $userFirstName ?>">
</div>
<div class="form-group">
<label for="family_name"><span style="color:red;"><abbr title="Requis">*</abbr></span> Nom</label>
<input type="text" id="family_name" name="family_name" value="<?php echo $userFamilyName ?>">
</div>
<div class="form-group">
<label for="email"><span style="color:red;"><abbr title="Requis">*</abbr></span> Adresse
mail</label>
<input type="email" id="email" name="email" value="<?php echo $userEmail ?>">
</div>
<div class="form-group">
<label for="role">Rôle actuel</label>
<input type="text" id="role" name="role" value="<?php echo $userRole ?>" readonly>
</div>
<div class='form-group'>
<label for='role'>Rôle à assigner</label>
<select name='role' id='role'>
<option>Administrateur</option>
<option>Organisateur</option>
<option>Sportif</option>
<option>Spectateur</option>
</select>
<button type="submit" class="submit-button"><i class="fas fa-edit"></i>
Mettre à jour ces informations</i></button>
</div>
</form>
</div>
if (isset($_GET['success'])) {
$userEditedMail = $_GET['usermail'];
if ($_GET['success'] == 'true') {
echo "<p class='text' style='color:green;'>✅ L'utilisateur $userEditedMail a bien été modifié.</p>";
} else {
echo "<p class='text' style='color:red'>⛔ Aucune modification n'a été effectuée pour $userEditedMail.</p>";
}
}
echo "<form action='/admin/users/edit/edit.php' method='post'>";
echo "<div class='form-group'>";
echo "<label for='name'><span style='color:red;'><abbr title='Requis'>*</abbr></span> Prénom</label>";
echo "<input type='text' id='name' name='name' value='$userFirstName'>";
echo "</div>";
echo "<div class='form-group'>";
echo "<label for='family_name'><span style='color:red;'><abbr title='Requis'>*</abbr></span> Nom</label>";
echo "<input type='text' id='family_name' name='family_name' value='$userFamilyName'>";
echo "</div>";
echo "<div class='form-group'>";
echo "<label for='email'>Adresse mail</label><input type='email' id='email' name='email' style='cursor: not-allowed;' value='$userEmail' readonly>";
echo "</div>";
echo "<div class='form-group'>";
echo "<label for='role'>Rôle actuel</label>";
echo "<input type='text' id='role' name='role' style='cursor: not-allowed;' value='$userRole' readonly>";
echo "</div>";
echo "<div class='form-group'>";
echo "<label for='role'><span style='color:red;'><abbr title='Requis'>*</abbr></span> Rôle à assigner</label>";
echo "<select name='role' id='role'>";
echo "<option>Administrateur</option>";
echo "<option>Organisateur</option>";
echo "<option>Sportif</option>";
echo "<option>Spectateur</option>";
echo "</select>";
echo "<button type='submit' class='submit-button'><i class='fas fa-edit'></i>";
echo "Mettre à jour ces informations</i></button>";
echo "</div>";
echo "</form>";
echo "</div>";
}
?>
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/footer.php') ?>
</body>

View File

@ -4,7 +4,7 @@ session_start();
if (isset($_COOKIE['userData'])) {
$userDataEncoded = $_COOKIE['userData'];
$userData = json_decode($userDataEncoded, true); // 'true' pour obtenir un tableau associatif
$userData = json_decode($userDataEncoded, true);
$email = $userData['email'];
$name = $userData['name'];
@ -42,21 +42,27 @@ if (isset($_COOKIE['userData'])) {
header("refresh:5; url=/");
die();
}
?>
<?php
$role = $userData['role'];
$stmt = mysqli_prepare($db, "SELECT * FROM user WHERE mail = ?");
mysqli_stmt_bind_param($stmt, "s", $email);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
while ($row = mysqli_fetch_assoc($result)) {
$role = $row["role"];
}
if ($role != 'Administrateur') {
echo "<p class='text'>Vous n'êtes pas autorisé à accéder à cette page.</p>";
echo "<p class='text'>Redirection vers l'accueil dans 5 secondes...</p>";
//remet à jour le cookie de l'utilisateur pour remettre son rôle à jour
setcookie('userData', json_encode(array('email' => $email, 'name' => $name, 'familyName' => $familyName, 'role' => $role)), time() + 365 * 24 * 3600, '/');
header("refresh:5; url=/");
die();
} else { // Si l'utilisateur est un administrateur : accès à la page
} else {
echo "<p class='text'>Bienvenue sur le panel de gestion des utilisateurs.</p>";
echo "<p class='text'>Vous pouvez ici gérer les utilisateurs.</p>";
echo "<p class='text'>Que souhaitez-vous faire ?</p>";
// Affichage des utilisateurs
// voir message de supression:
if (isset($_GET['res'])) {
$oldEmail = ($_GET['res']);
echo "<p class='text' style='color:yellow; padding-left:0; text-align:center;'>L'utilisateur " . $oldEmail . " a bien été supprimé.</p>";

View File

@ -1,49 +0,0 @@
<?php
require_once $_SERVER['DOCUMENT_ROOT'] . '/tools/dbConnect.php';
session_start();
if (isset($_COOKIE['userData'])) {
$userDataEncoded = $_COOKIE['userData'];
$userData = json_decode($userDataEncoded, true); // 'true' pour obtenir un tableau associatif
$email = $userData['email'];
$name = $userData['name'];
$familyName = $userData['familyName'];
$role = $userData['role'];
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="/styles/main.css" />
<link rel="stylesheet" href="/styles/header.css" />
<link rel="stylesheet" href="/styles/footer.css" />
<link
href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
rel="stylesheet"
/>
<link
rel="icon"
type="image/png"
sizes="32x32"
href="https://tickets.paris2024.org/obj/media/FR-Paris2024/specialLogos/favicons/favicon-32x32.png"
/>
<script
src="https://kit.fontawesome.com/f16a36bad3.js"
crossorigin="anonymous"
></script>
<title>Jeux Olympiques - Paris 2024</title>
</head>
<body>
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/header.php') ?>
<!-- code de la page ici -->
<?php include($_SERVER['DOCUMENT_ROOT'].'/views/footer.php')?>
</body>
</html>

View File

@ -33,41 +33,10 @@ if (isset($_COOKIE['userData'])) {
<h1>Évènements</h1>
<?php
/*
- Sujet:
-- Créer un évènement (rôle organisateur ou admin)
-- afficher la liste des évènements (tout le monde)
-- Rechercher un évènement par date, lieu, ou nom
-- s'inscrire à un évènement (rôle membre ou +)
-- participer à un évènement (sportif)
-- laisser un commentaire (rôle membre ou +)
-- Trier les évènements par date, nombre de participants, personnes y ayant accès, etc...
*/
?>
<!-- to do
-- Créer un évènement (rôle organisateur ou admin)
-- s'inscrire à un évènement (rôle membre ou +)
-- afficher la liste des évènements (tout le monde)
-- Rechercher un évènement par date, lieu, ou nom
-- Trier les évènements par date, nombre de participants, personnes y ayant accès, etc...
-- participer à un évènement (sportif)
-- sécuriser les pages avec actions administratives
-->
<?php
echo '<button class="new-event" onclick="window.location.href = \'/events/list\';">Rechercher un évènement</button>';
// faire une requete sql avec mysqli permettant d'afficher tous les évènements
// afficher les évènements sous forme de tableau
// voici les colonnes disponibles dans la table event
// id title description event_type date location role guest_count creator
if ($role == 'Organisateur') {
echo '<button class="new-event" onclick="window.location.href = \'/events/new\';">Créer un évènement</button>';
}
$query = "SELECT * FROM event";
@ -120,7 +89,6 @@ if (isset($_COOKIE['userData'])) {
echo "<td class='event-table-data'>" . htmlspecialchars($row['event_type']) . "</td>";
echo "<td class='event-table-data'>" . date('d/m/Y', strtotime($row['date'])) . "</td>";
echo "<td class='event-table-data'>" . htmlspecialchars($row['location']) . "</td>";
// mettre un bouton réserver si l'utilisateur est connecté et un bouton participer si l'utilisateur est un sportif
if (isset($_COOKIE['userData'])) {
if ($role == 'Sportif') {
echo "<td class='event-table-data'><button class='submit-button' onclick='window.location.href=\"/events/participate/participate.php?usermail=$email&id=" . $row['id'] . "\"'>Participer</button></td>";
@ -133,15 +101,8 @@ if (isset($_COOKIE['userData'])) {
echo "</div>";
echo "</div>";
?>
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/footer.php') ?>

View File

@ -3,7 +3,6 @@ require_once $_SERVER['DOCUMENT_ROOT'] . '/tools/dbConnect.php';
session_start();
// Traitement des données utilisateur
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$eventName = $db->real_escape_string($_POST['eventName']);
$eventDate = $db->real_escape_string($_POST['eventDate']);
@ -12,19 +11,16 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$eventDescription = $db->real_escape_string($_POST['eventDescription']);
$eventRoles = isset($_POST['eventRole']) ? $_POST['eventRole'] : [];
// Construction d'une liste de rôles pour l'affichage
$rolesText = implode(', ', $eventRoles);
if (isset($_COOKIE['userData'])) {
$userDataEncoded = $_COOKIE['userData'];
$userData = json_decode($userDataEncoded, true); // 'true' pour obtenir un tableau associatif
$userData = json_decode($userDataEncoded, true);
$email = $userData['email'];
$name = $userData['name'];
$familyName = $userData['familyName'];
$role = $userData['role'];
}
// Affichage des informations pour confirmation
echo "<p class='text'>Nom de l'évènement : $eventName</p>";
echo "<p class='text'>Date de l'évènement : $eventDate</p>";
echo "<p class='text'>Lieu de l'évènement : $eventLocation</p>";
@ -33,7 +29,6 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
echo "<p class='text'>Rôles de l'évènement : $rolesText</p>";
echo "<p class='text'>Créateur de l'évènement : $email</p>";
// Requête SQL préparée
$stmt = mysqli_prepare($db, "INSERT INTO `event` (title, description, event_type, date, location, role, guest_count, creator) VALUES (?, ?, ?, ?, ?, ?, 0, ?)");
mysqli_stmt_bind_param($stmt, 'sssssss', $eventName, $eventDescription, $eventDiscipline, $eventDate, $eventLocation, $rolesText, $email);
$result = mysqli_stmt_execute($stmt);

View File

@ -47,7 +47,7 @@ if (isset($_COOKIE['userData'])) {
$role = $userData['role'];
if (($role == 'Administrateur') or ($role == 'Organisateur')) { // Si l'utilisateur est un administrateur : accès à la page
if (($role == 'Administrateur') or ($role == 'Organisateur')) {
echo "<div class='event-container'>";
echo "<img src='https://cdn-icons-png.flaticon.com/512/2538/2538566.png' alt='Avatar'>";
echo "<h2 class='event-title'>Créer un nouvel évènement</h2>";

File diff suppressed because it is too large Load Diff

View File

@ -1795,205 +1795,6 @@
"$ref": "AAAAAAGQHEsGE1+fiXs="
}
},
{
"_type": "UMLUseCaseView",
"_id": "AAAAAAGQHEskXl/D/ms=",
"_parent": {
"$ref": "AAAAAAGQHC8VXF2KGv4="
},
"model": {
"$ref": "AAAAAAGQHEskXl/B87A="
},
"subViews": [
{
"_type": "UMLNameCompartmentView",
"_id": "AAAAAAGQHEskX1/E3T8=",
"_parent": {
"$ref": "AAAAAAGQHEskXl/D/ms="
},
"model": {
"$ref": "AAAAAAGQHEskXl/B87A="
},
"subViews": [
{
"_type": "LabelView",
"_id": "AAAAAAGQHEskX1/FDek=",
"_parent": {
"$ref": "AAAAAAGQHEskX1/E3T8="
},
"visible": false,
"font": "Arial;13;0",
"left": 368,
"top": -288,
"height": 13
},
{
"_type": "LabelView",
"_id": "AAAAAAGQHEskX1/GCJo=",
"_parent": {
"$ref": "AAAAAAGQHEskX1/E3T8="
},
"font": "Arial;13;1",
"left": 468,
"top": 196,
"width": 62,
"height": 13,
"text": "Email"
},
{
"_type": "LabelView",
"_id": "AAAAAAGQHEskX1/HwYE=",
"_parent": {
"$ref": "AAAAAAGQHEskX1/E3T8="
},
"visible": false,
"font": "Arial;13;0",
"left": 368,
"top": -288,
"width": 73.67724609375,
"height": 13,
"text": "(from Model)"
},
{
"_type": "LabelView",
"_id": "AAAAAAGQHEskX1/ImMk=",
"_parent": {
"$ref": "AAAAAAGQHEskX1/E3T8="
},
"visible": false,
"font": "Arial;13;0",
"left": 368,
"top": -288,
"height": 13,
"horizontalAlignment": 1
}
],
"font": "Arial;13;0",
"left": 463,
"top": 189,
"width": 72,
"height": 25,
"stereotypeLabel": {
"$ref": "AAAAAAGQHEskX1/FDek="
},
"nameLabel": {
"$ref": "AAAAAAGQHEskX1/GCJo="
},
"namespaceLabel": {
"$ref": "AAAAAAGQHEskX1/HwYE="
},
"propertyLabel": {
"$ref": "AAAAAAGQHEskX1/ImMk="
}
},
{
"_type": "UMLAttributeCompartmentView",
"_id": "AAAAAAGQHEskX1/Jt1s=",
"_parent": {
"$ref": "AAAAAAGQHEskXl/D/ms="
},
"model": {
"$ref": "AAAAAAGQHEskXl/B87A="
},
"visible": false,
"font": "Arial;13;0",
"left": 184,
"top": -144,
"width": 10,
"height": 10
},
{
"_type": "UMLOperationCompartmentView",
"_id": "AAAAAAGQHEskX1/KlVk=",
"_parent": {
"$ref": "AAAAAAGQHEskXl/D/ms="
},
"model": {
"$ref": "AAAAAAGQHEskXl/B87A="
},
"visible": false,
"font": "Arial;13;0",
"left": 184,
"top": -144,
"width": 10,
"height": 10
},
{
"_type": "UMLReceptionCompartmentView",
"_id": "AAAAAAGQHEskX1/LABc=",
"_parent": {
"$ref": "AAAAAAGQHEskXl/D/ms="
},
"model": {
"$ref": "AAAAAAGQHEskXl/B87A="
},
"visible": false,
"font": "Arial;13;0",
"left": 184,
"top": -144,
"width": 10,
"height": 10
},
{
"_type": "UMLTemplateParameterCompartmentView",
"_id": "AAAAAAGQHEskX1/MEUE=",
"_parent": {
"$ref": "AAAAAAGQHEskXl/D/ms="
},
"model": {
"$ref": "AAAAAAGQHEskXl/B87A="
},
"visible": false,
"font": "Arial;13;0",
"left": 184,
"top": -144,
"width": 10,
"height": 10
},
{
"_type": "UMLExtensionPointCompartmentView",
"_id": "AAAAAAGQHEskX1/NO0c=",
"_parent": {
"$ref": "AAAAAAGQHEskXl/D/ms="
},
"model": {
"$ref": "AAAAAAGQHEskXl/B87A="
},
"visible": false,
"font": "Arial;13;0",
"left": 184,
"top": -144,
"width": 10,
"height": 10
}
],
"font": "Arial;13;0",
"containerChangeable": true,
"left": 448,
"top": 184,
"width": 102,
"height": 35,
"nameCompartment": {
"$ref": "AAAAAAGQHEskX1/E3T8="
},
"suppressAttributes": true,
"suppressOperations": true,
"attributeCompartment": {
"$ref": "AAAAAAGQHEskX1/Jt1s="
},
"operationCompartment": {
"$ref": "AAAAAAGQHEskX1/KlVk="
},
"receptionCompartment": {
"$ref": "AAAAAAGQHEskX1/LABc="
},
"templateParameterCompartment": {
"$ref": "AAAAAAGQHEskX1/MEUE="
},
"extensionPointCompartment": {
"$ref": "AAAAAAGQHEskX1/NO0c="
}
},
{
"_type": "UMLUseCaseView",
"_id": "AAAAAAGQHEs92F/xhtY=",
@ -2757,101 +2558,6 @@
"$ref": "AAAAAAGQHEzVTGDW0ZE="
}
},
{
"_type": "UMLExtendView",
"_id": "AAAAAAGQHEznkGFf6/4=",
"_parent": {
"$ref": "AAAAAAGQHC8VXF2KGv4="
},
"model": {
"$ref": "AAAAAAGQHEznj2FdHdY="
},
"subViews": [
{
"_type": "EdgeLabelView",
"_id": "AAAAAAGQHEznkGFgaRc=",
"_parent": {
"$ref": "AAAAAAGQHEznkGFf6/4="
},
"model": {
"$ref": "AAAAAAGQHEznj2FdHdY="
},
"visible": false,
"font": "Arial;13;0",
"left": 423,
"top": 176,
"height": 13,
"alpha": 1.5707963267948966,
"distance": 15,
"hostEdge": {
"$ref": "AAAAAAGQHEznkGFf6/4="
},
"edgePosition": 1
},
{
"_type": "EdgeLabelView",
"_id": "AAAAAAGQHEznkGFhUcg=",
"_parent": {
"$ref": "AAAAAAGQHEznkGFf6/4="
},
"model": {
"$ref": "AAAAAAGQHEznj2FdHdY="
},
"font": "Arial;13;0",
"left": 427,
"top": 172,
"width": 53.49169921875,
"height": 13,
"alpha": -3.0962168259138725,
"distance": 24.758836806279895,
"hostEdge": {
"$ref": "AAAAAAGQHEznkGFf6/4="
},
"edgePosition": 1,
"text": "«extend»"
},
{
"_type": "EdgeLabelView",
"_id": "AAAAAAGQHEznkGFiAkA=",
"_parent": {
"$ref": "AAAAAAGQHEznkGFf6/4="
},
"model": {
"$ref": "AAAAAAGQHEznj2FdHdY="
},
"visible": false,
"font": "Arial;13;0",
"left": 436,
"top": 149,
"height": 13,
"alpha": -1.5707963267948966,
"distance": 15,
"hostEdge": {
"$ref": "AAAAAAGQHEznkGFf6/4="
},
"edgePosition": 1
}
],
"font": "Arial;13;0",
"head": {
"$ref": "AAAAAAGQHEuxrmAf+nQ="
},
"tail": {
"$ref": "AAAAAAGQHEskXl/D/ms="
},
"lineStyle": 1,
"points": "460:183;401:156",
"showVisibility": true,
"nameLabel": {
"$ref": "AAAAAAGQHEznkGFgaRc="
},
"stereotypeLabel": {
"$ref": "AAAAAAGQHEznkGFhUcg="
},
"propertyLabel": {
"$ref": "AAAAAAGQHEznkGFiAkA="
}
},
{
"_type": "UMLExtendView",
"_id": "AAAAAAGQHEz2eGHZo5o=",

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -166,7 +166,6 @@ h2 {
color: white;
font-size: 1.5rem;
margin-top: 1rem;
padding-left: 2rem;
text-transform: uppercase;
font-family: "RobotoFlex";
}
@ -335,13 +334,13 @@ input[type="checkbox"] + label::before {
border-radius: 4px;
}
/* Changer l'apparence lorsque la case est cochée */
/* Changement de l'apparence lorsque la case est cochée */
input[type="checkbox"]:checked + label::before {
background-color: #007bff;
border-color: #007bff;
}
/* Optionnel : Ajouter un indicateur visuel pour la case cochée */
/* Ajout d'un indicateur visuel pour la case cochée */
input[type="checkbox"]:checked + label::after {
content: "✓";
position: absolute;
@ -362,16 +361,24 @@ input[type="checkbox"]:checked + label::after {
appearance: none; /* Pour supprimer le style par défaut */
-webkit-appearance: none; /* Pour Safari */
-moz-appearance: none; /* Pour Firefox */
background-image: url("https://cdn-icons-png.flaticon.com/16/8442/8442683.png"); /* Ajoutez votre icône personnalisée */
background-image: url("https://cdn-icons-png.flaticon.com/16/8442/8442683.png");
background-repeat: no-repeat;
background-position: right 0.5rem center; /* Ajustez selon la taille de votre padding */
background-size: 1.5rem; /* Ajustez selon la taille souhaitée pour l'icône */
background-position: right 0.5rem center;
background-size: 1.5rem;
}
.not-selectable {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
/* Optionnel : Style pour les options */
.form-group select option {
background-color: #34353a; /* Pour que le fond des options corresponde au select */
color: #fffe; /* Couleur du texte des options */
background-color: #34353a;
color: #fffe;
}
.event-container img {
@ -421,8 +428,8 @@ button.new-event:hover {
.events-flex-container {
display: flex;
flex-wrap: wrap; /* Permet aux éléments de passer à la ligne suivante si nécessaire */
gap: 1rem; /* Ajoute un espace entre les divs */
flex-wrap: wrap;
gap: 1rem;
}
.event-card {
@ -430,9 +437,7 @@ button.new-event:hover {
padding: 1rem;
border-radius: 10px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.5);
width: calc(
50% - 1rem
); /* Prend la moitié de l'espace disponible, en déduisant l'espace de la 'gap' */
width: calc(50% - 1rem);
max-width: 400px;
margin: 0 auto 1rem;
}

View File

@ -1,19 +1,13 @@
<?php
// Démarrage de la session pour accéder aux variables de session
session_start();
// Vérifier et détruire le cookie utilisateur
if (isset($_COOKIE['userData'])) {
// Effacer la valeur du cookie
unset($_COOKIE['userData']);
// Demander au navigateur de supprimer le cookie
setcookie('userData', '', time() - 3600, '/'); // Définit l'expiration du cookie à une heure dans le passé
setcookie('userData', '', time() - 3600, '/');
}
// Nettoyer toutes les données de session
$_SESSION = array(); // Efface toutes les données stockées dans la session
$_SESSION = array();
// Si vous voulez détruire complètement la session, supprimez également le cookie de session
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(
@ -27,10 +21,8 @@ if (ini_get("session.use_cookies")) {
);
}
// Finalement, détruire la session
session_destroy();
// Rediriger l'utilisateur vers la page de connexion ou la page d'accueil
header("Location: /account/login");
exit();
?>

View File

@ -2,21 +2,9 @@
require_once $_SERVER['DOCUMENT_ROOT'] . '/tools/dbConnect.php';
session_start();
/*
- récupérer name, family_name, mail, password
- vérifier que le mail n'existe pas déjà (n'appartient pas à un autre utilisateur)
- préparer la requête UPDATE
- exécuter la requête
- si succès,
- supprimer cookie existat
- créer un cookie avec mail, nom, prénom, rôle. Qui expire dans 1h
- si échec rediriger vers /account/profile?result=updatefailed
*/
if (isset($_COOKIE['userData'])) {
$userDataEncoded = $_COOKIE['userData'];
$userData = json_decode($userDataEncoded, true); // 'true' pour obtenir un tableau associatif
$userData = json_decode($userDataEncoded, true);
$email = $userData['email'];
$oldEmail = $userData['email'];
@ -33,7 +21,7 @@ if ($_SERVER["REQUEST_METHOD"] == "POST") {
$updateUser = "UPDATE `user` SET `mail`='$email',`name`='$name',`family_name`='$familyName',`password`='$hashedPassword' WHERE mail = '$oldEmail'";
$updateUser = "UPDATE `user` SET `name`='$name',`family_name`='$familyName',`password`='$hashedPassword' WHERE mail = '$oldEmail'";
$resultUpdateUser = mysqli_query($db, $updateUser);
if ($resultUpdateUser) {
setcookie("userData", "", time() - 3600, "/");
@ -54,39 +42,4 @@ if ($_SERVER["REQUEST_METHOD"] == "POST") {
}
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="/styles/main.css" />
<link rel="stylesheet" href="/styles/header.css" />
<link rel="stylesheet" href="/styles/footer.css" />
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet" />
<link rel="icon" type="image/png" sizes="32x32"
href="https://tickets.paris2024.org/obj/media/FR-Paris2024/specialLogos/favicons/favicon-32x32.png" />
<script src="https://kit.fontawesome.com/f16a36bad3.js" crossorigin="anonymous"></script>
<title>Jeux Olympiques - Paris 2024</title>
</head>
<body>
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/header.php') ?>
<?php
echo "<p class='text'>Données reçues : </p>";
echo "<p class='text'>email : $email</p>";
echo "<p class='text'>name : $name</p>";
echo "<p class='text'>familyName : $familyName</p>";
echo "<p class='text'>password : $password</p>";
echo "<p class='text'>hashedPassword : $hashedPassword</p>";
echo "<p class='text'>oldEmail : $oldEmail</p>";
?>
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/footer.php') ?>
</body>
</html>
?>

View File

@ -17,10 +17,10 @@ if (isset($_COOKIE['userData'])) {
<div class="row">
<div class="col-sm-12 col-md-6">
<h6>à propos</h6>
<p class="text-justify">Ce site est le fruit d'une SAÉ en informatique, développé par deux
étudiants, destiné à simuler des fonctionnalités du site officiel des Jeux Olympiques de Paris 2024.
Il a été conçu pour démontrer nos compétences en développement web et en gestion de données, tout en
offrant une expérience utilisateur interactive et informative.</p>
<p class="text-justify">Ce site est le fruit d'une SAÉ en informatique, destiné à simuler des
fonctionnalités du site officiel des Jeux Olympiques de Paris 2024.Il a été conçu pour démontrer nos
compétences en développement web et en gestion de données, tout en offrant une expérience
utilisateur interactive et informative.</p>
</div>
<div class="col-xs-6 col-md-3">
@ -62,6 +62,7 @@ if (isset($_COOKIE['userData'])) {
echo "<a href='/account/login'>Connexion</a>";
} ?>
</li>
</ul>
</div>
</div>
@ -76,6 +77,10 @@ if (isset($_COOKIE['userData'])) {
<a href="https://grond.iut-fbleau.fr/balocchi">Loris</a>
</p>
</div>
<div class="col-md-4 col-sm-6 col-xs-12">
<ul>
<li><a><img src="https://wakatime.com/badge/user/26707066-9796-45af-a9b8-895a6e3ce3f8/project/3b2aa1b8-0154-4504-a0f3-895328adcbf0.svg"
alt="wakatime"> Temps passé sur la SAÉ.</a></li>
</div>
</div>
</div>
</footer>

View File

@ -3,8 +3,7 @@ require_once $_SERVER['DOCUMENT_ROOT'] . '/tools/dbConnect.php';
if (isset($_COOKIE['userData'])) {
$userDataEncoded = $_COOKIE['userData'];
$userData = json_decode($userDataEncoded, true); // 'true' pour obtenir un tableau associatif
$userData = json_decode($userDataEncoded, true);
$email = $userData['email'];
$name = $userData['name'];
$familyName = $userData['familyName'];
@ -13,15 +12,12 @@ if (isset($_COOKIE['userData'])) {
?>
<nav class="menu-container">
<!-- burger menu -->
<input type="checkbox" aria-label="Toggle menu" />
<span></span>
<span></span>
<span></span>
<!-- logo -->
<a href="<?php
if (isset($_COOKIE['userData'])) {
echo "/?res=login-succeeded";
@ -32,7 +28,6 @@ if (isset($_COOKIE['userData'])) {
<img src="https://i.imgur.com/RkmSo9Q.png" alt="Jeux Olympiques - Paris 2024" />
</a>
<!-- menu items -->
<div class="menu">
<ul>
<?php
@ -42,8 +37,8 @@ if (isset($_COOKIE['userData'])) {
echo "<li class='dropdown'>";
echo "<a href='/admin'>Panel d'administration</a>";
echo "<ul class='dropdown-content'>";
echo "<li><a href='/admin/users'>Gérer les utilisateurs</a></li>"; //option 1
echo "<li><a href='/admin/users'>Gérer les utilisateurs</a></li>";
echo "</ul>";
echo "</li>";
}
@ -58,22 +53,18 @@ if (isset($_COOKIE['userData'])) {
$role = $userData['role'];
if ($role == 'Administrateur') {
echo "<li><a href='/events/new'>Créer un nouvel évènement</a></li>";
echo "<li><a href='/events/list'>Liste des évènements</a></li>";
echo "<li><a href='/events/book'>S'inscrire à un évènement</a></li>";
echo "<li><a href='/events/list'>Rechercher un évènement</a></li>";
} else if ($role == 'Sportif') {
echo "<li><a href='/events/participate'>Participer à un évènement</a></li>";
echo "<li><a href='/events/list'>Liste des évènements</a></li>";
echo "<li><a href='/events/book'>S'inscrire à un évènement</a></li>";
echo "<li><a href='/events/list'>Rechercher un évènement</a></li>";
} else if ($role == "Organisateur") {
echo "<li><a href='/events/new'>Créer un nouvel évènement</a></li>";
echo "<li><a href='/events/list'>Liste des évènements</a></li>";
echo "<li><a href='/events/book'>S'inscrire à un évènement</a></li>";
echo "<li><a href='/events/list'>Rechercher un évènement</a></li>";
} else if ($role == "Membre") {
echo "<li><a href='/events/list'>Liste des évènements</a></li>";
echo "<li><a href='/events/book'>S'inscrire à un évènement</a></li>";
echo "<li><a href='/events/list'>Rechercher un évènement</a></li>";
}
} else {
echo "<li><a href='/events/list'>Liste des évènements</a></li>";
echo "<li><a href='/events/list'>Rechercher un évènement</a></li>";
}
?>
@ -101,10 +92,8 @@ if (isset($_COOKIE['userData'])) {
<li>
<?php
if (isset($_COOKIE['userData'])) {
//echo "<a href='/account/profile'>Mon profil</a>";
$userName = "" . $userData['name'] . " " . $userData['familyName'] . "";
echo "<a href='/account/profile'><img class='avatar' src='https://cdn-icons-png.flaticon.com/64/4139/4139948.png' title=" . $userName . "></a>";
//echo "<br>" . $userData['name'] . " " . $userData['familyName'];
} else {
echo "<a href='/account/login'>Connexion</a>";
}