Nettoyage du code, fix de petits bugs.
Co-authored-by: Charpentier Juliette <juliette.charpentier1@etu.u-pec.fr
This commit is contained in:
parent
5f8e3e6dbc
commit
cfb9825a59
@ -67,8 +67,9 @@ if (isset($_COOKIE['userData'])) {
|
|||||||
<input type="text" id="family_name" name="family_name" value="<?php echo $familyName ?>">
|
<input type="text" id="family_name" name="family_name" value="<?php echo $familyName ?>">
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="email"><span style="color:red;"><abbr title="Requis">*</abbr></span> Adresse mail</label>
|
<label for="email">Adresse mail</label>
|
||||||
<input type="email" id="email" name="email" value="<?php echo $email ?>">
|
<input type="email" id="email" name="email" value="<?php echo $email ?>" disabled
|
||||||
|
style="cursor: not-allowed;">
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="password"><span style="color:red;"><abbr title="Requis">*</abbr></span> Mot de passe</label>
|
<label for="password"><span style="color:red;"><abbr title="Requis">*</abbr></span> Mot de passe</label>
|
||||||
|
@ -1,14 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
require_once $_SERVER['DOCUMENT_ROOT'] . '/tools/dbConnect.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');
|
include ($_SERVER['DOCUMENT_ROOT'] . '/views/header.php');
|
||||||
|
|
||||||
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||||
@ -21,8 +13,11 @@ if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
|||||||
|
|
||||||
$hashedPassword = sha1($password);
|
$hashedPassword = sha1($password);
|
||||||
|
|
||||||
$query = "SELECT mail FROM user WHERE mail = '$email'";
|
$query = "SELECT mail FROM user WHERE mail = ?";
|
||||||
$result = mysqli_query($db, $query);
|
$stmt = mysqli_prepare($db, $query);
|
||||||
|
mysqli_stmt_bind_param($stmt, "s", $email);
|
||||||
|
mysqli_stmt_execute($stmt);
|
||||||
|
$result = mysqli_stmt_get_result($stmt);
|
||||||
|
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
die("Erreur lors de l'exécution de la requête.");
|
die("Erreur lors de l'exécution de la requête.");
|
||||||
@ -53,16 +48,13 @@ if (!$resultAddUser) {
|
|||||||
if (mysqli_affected_rows($db) > 0) {
|
if (mysqli_affected_rows($db) > 0) {
|
||||||
echo "<p class='text'>Utilisateur créé avec succès. </p>";
|
echo "<p class='text'>Utilisateur créé avec succès. </p>";
|
||||||
|
|
||||||
// Créer un tableau avec les données utilisateur
|
|
||||||
$userData = array(
|
$userData = array(
|
||||||
"email" => $email,
|
"email" => $email,
|
||||||
"name" => $name,
|
"name" => $name,
|
||||||
"familyName" => $familyName,
|
"familyName" => $familyName,
|
||||||
"role" => $role,
|
"role" => $role,
|
||||||
);
|
);
|
||||||
// Sérialiser le tableau en JSON
|
|
||||||
$userDataEncoded = json_encode($userData);
|
$userDataEncoded = json_encode($userData);
|
||||||
// Stocker les données sérialisées dans un cookie
|
|
||||||
setcookie("userData", $userDataEncoded, time() + 3600, "/");
|
setcookie("userData", $userDataEncoded, time() + 3600, "/");
|
||||||
|
|
||||||
echo "<p class='text'>Cookie créé avec succès. Contenu du cookie :</p>";
|
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');
|
include ($_SERVER['DOCUMENT_ROOT'] . '/views/footer.php');
|
||||||
?>
|
?>
|
@ -43,9 +43,19 @@ if (isset($_COOKIE['userData'])) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$role = $userData['role'];
|
$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') {
|
if ($role != 'Administrateur') {
|
||||||
echo "<p class='text'>Vous n'êtes pas autorisé à accéder à cette page.</p>";
|
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>";
|
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=/");
|
header("refresh:5; url=/");
|
||||||
die();
|
die();
|
||||||
} else { // Si l'utilisateur est un administrateur : accès à la page
|
} else { // Si l'utilisateur est un administrateur : accès à la page
|
||||||
|
@ -33,8 +33,6 @@ if (isset($_COOKIE['userData'])) {
|
|||||||
<body>
|
<body>
|
||||||
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/header.php') ?>
|
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/header.php') ?>
|
||||||
<!-- code de la page ici -->
|
<!-- 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">
|
<div class="login-container">
|
||||||
<img src="https://cdn-icons-png.flaticon.com/512/4139/4139948.png" alt="Avatar">
|
<img src="https://cdn-icons-png.flaticon.com/512/4139/4139948.png" alt="Avatar">
|
||||||
<h2>Créer un compte</h2>
|
<h2>Créer un compte</h2>
|
||||||
|
@ -4,7 +4,7 @@ session_start();
|
|||||||
|
|
||||||
if (isset($_COOKIE['userData'])) {
|
if (isset($_COOKIE['userData'])) {
|
||||||
$userDataEncoded = $_COOKIE['userData'];
|
$userDataEncoded = $_COOKIE['userData'];
|
||||||
$userData = json_decode($userDataEncoded, true); // 'true' pour obtenir un tableau associatif
|
$userData = json_decode($userDataEncoded, true);
|
||||||
|
|
||||||
$email = $userData['email'];
|
$email = $userData['email'];
|
||||||
$name = $userData['name'];
|
$name = $userData['name'];
|
||||||
@ -20,14 +20,11 @@ if (isset($_COOKIE['userData'])) {
|
|||||||
// script php ici
|
// script php ici
|
||||||
if (isset($_GET['oldemail'])) {
|
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']);
|
$userEmail = htmlspecialchars($_GET['oldemail']);
|
||||||
$stmt = mysqli_prepare($db, "DELETE FROM user WHERE mail=?");
|
$stmt = mysqli_prepare($db, "DELETE FROM user WHERE mail=?");
|
||||||
mysqli_stmt_bind_param($stmt, 's', $userEmail);
|
mysqli_stmt_bind_param($stmt, 's', $userEmail);
|
||||||
$result = mysqli_stmt_execute($stmt);
|
$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>";
|
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');
|
include ($_SERVER['DOCUMENT_ROOT'] . '/views/footer.php');
|
||||||
header("Location: /admin/users/?res=$userEmail");
|
header("Location: /admin/users/?res=$userEmail");
|
||||||
die();
|
die();
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
require_once $_SERVER['DOCUMENT_ROOT'] . '/tools/dbConnect.php';
|
require_once $_SERVER['DOCUMENT_ROOT'] . '/tools/dbConnect.php';
|
||||||
session_start();
|
|
||||||
|
|
||||||
if (isset($_COOKIE['userData'])) {
|
if (isset($_COOKIE['userData'])) {
|
||||||
$userDataEncoded = $_COOKIE['userData'];
|
$userDataEncoded = $_COOKIE['userData'];
|
||||||
$userData = json_decode($userDataEncoded, true); // 'true' pour obtenir un tableau associatif
|
$userData = json_decode($userDataEncoded, true);
|
||||||
|
|
||||||
$email = $userData['email'];
|
$email = $userData['email'];
|
||||||
$name = $userData['name'];
|
$name = $userData['name'];
|
||||||
@ -16,45 +15,34 @@ if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
|||||||
$userName = htmlspecialchars($_POST["name"]);
|
$userName = htmlspecialchars($_POST["name"]);
|
||||||
$userFamilyName = htmlspecialchars($_POST["family_name"]);
|
$userFamilyName = htmlspecialchars($_POST["family_name"]);
|
||||||
$userEmail = htmlspecialchars($_POST["email"]);
|
$userEmail = htmlspecialchars($_POST["email"]);
|
||||||
$userPassword = isset($_POST["password"]) ? htmlspecialchars($_POST["password"]) : "";
|
|
||||||
$userUserRole = htmlspecialchars($_POST["role"]);
|
$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) {
|
if (!$resultEditUser) {
|
||||||
echo "<p class='text'>Erreur lors de l'exécution de la requête.</p>";
|
echo "<p class='text'>Erreur lors de l'exécution de la requête.</p>";
|
||||||
} else {
|
} else {
|
||||||
if (mysqli_affected_rows($db) > 0) {
|
if ($stmt->affected_rows > 0) {
|
||||||
echo "<p class='text'>Utilisateur créé avec succès. </p>";
|
echo "<p class='text'>L'utilisateur a bien été modifié.</p>";
|
||||||
|
|
||||||
echo "<p class='text'>Prénom : " . $userName . "</p>";
|
echo "<p class='text'>Prénom : " . $userName . "</p>";
|
||||||
echo "<p class='text'>Nom : " . $userFamilyName . "</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>";
|
echo "<p class='text'>Rôle : " . $userUserRole . "</p>";
|
||||||
include ($_SERVER['DOCUMENT_ROOT'] . '/tools/discordWebhookRegister.php');
|
$stmt->close();
|
||||||
header("Location: /admin/users/edit?usermail=$userEmail");
|
header("Location: /admin/users/edit?usermail=$userEmail&success=true");
|
||||||
die();
|
die();
|
||||||
} else {
|
} 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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
@ -11,12 +11,6 @@ if ($userDataEncoded) {
|
|||||||
$familyName = $userData['familyName'];
|
$familyName = $userData['familyName'];
|
||||||
$role = $userData['role'];
|
$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'])) {
|
if (isset($_GET['usermail'])) {
|
||||||
$userEmail = $_GET['usermail'];
|
$userEmail = $_GET['usermail'];
|
||||||
@ -61,53 +55,70 @@ if (isset($_GET['usermail'])) {
|
|||||||
<body>
|
<body>
|
||||||
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/header.php'); ?>
|
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/header.php'); ?>
|
||||||
<h1>Profil de l'utilisateur :</h1>
|
<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;">
|
header("refresh:5; url=/");
|
||||||
<img src="https://cdn-icons-png.flaticon.com/512/4139/4139948.png" alt="Avatar">
|
die();
|
||||||
<h2>Mettre à jour ces informations</h2>
|
} else {
|
||||||
<p>Modifiez les informations de ce profil.</p>
|
echo "<div class='login-container' style='margin-top: 1rem;'>";
|
||||||
<?php
|
echo "<img src='https://cdn-icons-png.flaticon.com/512/4139/4139948.png' alt='Avatar'>";
|
||||||
echo "<p class='text' >Vous modifiez actuellement le profil de l'utilisateur $userEmail.</p>";
|
echo "<h2>Mettre à jour ces informations</h2>";
|
||||||
echo "<p class='text' >Ce profil est actuellement de type $userRole.</p>";
|
echo "<p>Modifiez les informations de ce profil.</p>";
|
||||||
echo "<p class='text'>" . $userFirstName . " " . $userFamilyName . "</p>";
|
|
||||||
echo "<p class='text'>" . $userEmail . "</p>";
|
|
||||||
|
|
||||||
?>
|
if (isset($_GET['success'])) {
|
||||||
|
$userEditedMail = $_GET['usermail'];
|
||||||
<form action="/admin/users/edit/edit.php" method="post">
|
if ($_GET['success'] == 'true') {
|
||||||
<div class="form-group">
|
echo "<p class='text' style='color:green;'>✅ L'utilisateur $userEditedMail a bien été modifié.</p>";
|
||||||
<label for="name"><span style="color:red;"><abbr title="Requis">*</abbr></span> Prénom</label>
|
} else {
|
||||||
<input type="text" id="name" name="name" value="<?php echo $userFirstName ?>">
|
echo "<p class='text' style='color:red'>⛔ Aucune modification n'a été effectuée pour $userEditedMail.</p>";
|
||||||
</div>
|
}
|
||||||
<div class="form-group">
|
}
|
||||||
<label for="family_name"><span style="color:red;"><abbr title="Requis">*</abbr></span> Nom</label>
|
echo "<form action='/admin/users/edit/edit.php' method='post'>";
|
||||||
<input type="text" id="family_name" name="family_name" value="<?php echo $userFamilyName ?>">
|
echo "<div class='form-group'>";
|
||||||
</div>
|
echo "<label for='name'><span style='color:red;'><abbr title='Requis'>*</abbr></span> Prénom</label>";
|
||||||
<div class="form-group">
|
echo "<input type='text' id='name' name='name' value='$userFirstName'>";
|
||||||
<label for="email"><span style="color:red;"><abbr title="Requis">*</abbr></span> Adresse
|
echo "</div>";
|
||||||
mail</label>
|
echo "<div class='form-group'>";
|
||||||
<input type="email" id="email" name="email" value="<?php echo $userEmail ?>">
|
echo "<label for='family_name'><span style='color:red;'><abbr title='Requis'>*</abbr></span> Nom</label>";
|
||||||
</div>
|
echo "<input type='text' id='family_name' name='family_name' value='$userFamilyName'>";
|
||||||
<div class="form-group">
|
echo "</div>";
|
||||||
<label for="role">Rôle actuel</label>
|
echo "<div class='form-group'>";
|
||||||
<input type="text" id="role" name="role" value="<?php echo $userRole ?>" readonly>
|
echo "<label for='email'>Adresse mail</label><input type='email' id='email' name='email' style='cursor: not-allowed;' value='$userEmail' readonly>";
|
||||||
</div>
|
echo "</div>";
|
||||||
|
echo "<div class='form-group'>";
|
||||||
<div class='form-group'>
|
echo "<label for='role'>Rôle actuel</label>";
|
||||||
<label for='role'>Rôle à assigner</label>
|
echo "<input type='text' id='role' name='role' style='cursor: not-allowed;' value='$userRole' readonly>";
|
||||||
<select name='role' id='role'>
|
echo "</div>";
|
||||||
<option>Administrateur</option>
|
echo "<div class='form-group'>";
|
||||||
<option>Organisateur</option>
|
echo "<label for='role'><span style='color:red;'><abbr title='Requis'>*</abbr></span> Rôle à assigner</label>";
|
||||||
<option>Sportif</option>
|
echo "<select name='role' id='role'>";
|
||||||
<option>Spectateur</option>
|
echo "<option>Administrateur</option>";
|
||||||
|
echo "<option>Organisateur</option>";
|
||||||
</select>
|
echo "<option>Sportif</option>";
|
||||||
<button type="submit" class="submit-button"><i class="fas fa-edit"></i>
|
echo "<option>Spectateur</option>";
|
||||||
Mettre à jour ces informations</i></button>
|
echo "</select>";
|
||||||
</div>
|
echo "<button type='submit' class='submit-button'><i class='fas fa-edit'></i>";
|
||||||
</form>
|
echo "Mettre à jour ces informations</i></button>";
|
||||||
|
echo "</div>";
|
||||||
</div>
|
echo "</form>";
|
||||||
|
echo "</div>";
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/footer.php') ?>
|
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/footer.php') ?>
|
||||||
</body>
|
</body>
|
||||||
|
@ -4,7 +4,7 @@ session_start();
|
|||||||
|
|
||||||
if (isset($_COOKIE['userData'])) {
|
if (isset($_COOKIE['userData'])) {
|
||||||
$userDataEncoded = $_COOKIE['userData'];
|
$userDataEncoded = $_COOKIE['userData'];
|
||||||
$userData = json_decode($userDataEncoded, true); // 'true' pour obtenir un tableau associatif
|
$userData = json_decode($userDataEncoded, true);
|
||||||
|
|
||||||
$email = $userData['email'];
|
$email = $userData['email'];
|
||||||
$name = $userData['name'];
|
$name = $userData['name'];
|
||||||
@ -42,21 +42,27 @@ if (isset($_COOKIE['userData'])) {
|
|||||||
header("refresh:5; url=/");
|
header("refresh:5; url=/");
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
|
||||||
<?php
|
|
||||||
$role = $userData['role'];
|
$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') {
|
if ($role != 'Administrateur') {
|
||||||
echo "<p class='text'>Vous n'êtes pas autorisé à accéder à cette page.</p>";
|
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>";
|
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=/");
|
header("refresh:5; url=/");
|
||||||
die();
|
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'>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'>Vous pouvez ici gérer les utilisateurs.</p>";
|
||||||
echo "<p class='text'>Que souhaitez-vous faire ?</p>";
|
echo "<p class='text'>Que souhaitez-vous faire ?</p>";
|
||||||
// Affichage des utilisateurs
|
|
||||||
// voir message de supression:
|
|
||||||
if (isset($_GET['res'])) {
|
if (isset($_GET['res'])) {
|
||||||
$oldEmail = ($_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>";
|
echo "<p class='text' style='color:yellow; padding-left:0; text-align:center;'>L'utilisateur " . $oldEmail . " a bien été supprimé.</p>";
|
||||||
|
49
base.html
49
base.html
@ -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>
|
|
@ -33,41 +33,10 @@ if (isset($_COOKIE['userData'])) {
|
|||||||
<h1>Évènements</h1>
|
<h1>Évènements</h1>
|
||||||
|
|
||||||
<?php
|
<?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>';
|
echo '<button class="new-event" onclick="window.location.href = \'/events/list\';">Rechercher un évènement</button>';
|
||||||
|
if ($role == 'Organisateur') {
|
||||||
|
echo '<button class="new-event" onclick="window.location.href = \'/events/new\';">Créer 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
|
|
||||||
|
|
||||||
|
|
||||||
$query = "SELECT * FROM event";
|
$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'>" . 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'>" . date('d/m/Y', strtotime($row['date'])) . "</td>";
|
||||||
echo "<td class='event-table-data'>" . htmlspecialchars($row['location']) . "</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 (isset($_COOKIE['userData'])) {
|
||||||
if ($role == 'Sportif') {
|
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>";
|
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>";
|
||||||
echo "</div>";
|
echo "</div>";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/footer.php') ?>
|
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/footer.php') ?>
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,7 +3,6 @@ require_once $_SERVER['DOCUMENT_ROOT'] . '/tools/dbConnect.php';
|
|||||||
session_start();
|
session_start();
|
||||||
|
|
||||||
|
|
||||||
// Traitement des données utilisateur
|
|
||||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||||
$eventName = $db->real_escape_string($_POST['eventName']);
|
$eventName = $db->real_escape_string($_POST['eventName']);
|
||||||
$eventDate = $db->real_escape_string($_POST['eventDate']);
|
$eventDate = $db->real_escape_string($_POST['eventDate']);
|
||||||
@ -12,19 +11,16 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|||||||
$eventDescription = $db->real_escape_string($_POST['eventDescription']);
|
$eventDescription = $db->real_escape_string($_POST['eventDescription']);
|
||||||
$eventRoles = isset($_POST['eventRole']) ? $_POST['eventRole'] : [];
|
$eventRoles = isset($_POST['eventRole']) ? $_POST['eventRole'] : [];
|
||||||
|
|
||||||
// Construction d'une liste de rôles pour l'affichage
|
|
||||||
$rolesText = implode(', ', $eventRoles);
|
$rolesText = implode(', ', $eventRoles);
|
||||||
|
|
||||||
if (isset($_COOKIE['userData'])) {
|
if (isset($_COOKIE['userData'])) {
|
||||||
$userDataEncoded = $_COOKIE['userData'];
|
$userDataEncoded = $_COOKIE['userData'];
|
||||||
$userData = json_decode($userDataEncoded, true); // 'true' pour obtenir un tableau associatif
|
$userData = json_decode($userDataEncoded, true);
|
||||||
|
|
||||||
$email = $userData['email'];
|
$email = $userData['email'];
|
||||||
$name = $userData['name'];
|
$name = $userData['name'];
|
||||||
$familyName = $userData['familyName'];
|
$familyName = $userData['familyName'];
|
||||||
$role = $userData['role'];
|
$role = $userData['role'];
|
||||||
}
|
}
|
||||||
// Affichage des informations pour confirmation
|
|
||||||
echo "<p class='text'>Nom de l'évènement : $eventName</p>";
|
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'>Date de l'évènement : $eventDate</p>";
|
||||||
echo "<p class='text'>Lieu de l'évènement : $eventLocation</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'>Rôles de l'évènement : $rolesText</p>";
|
||||||
echo "<p class='text'>Créateur de l'évènement : $email</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, ?)");
|
$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);
|
mysqli_stmt_bind_param($stmt, 'sssssss', $eventName, $eventDescription, $eventDiscipline, $eventDate, $eventLocation, $rolesText, $email);
|
||||||
$result = mysqli_stmt_execute($stmt);
|
$result = mysqli_stmt_execute($stmt);
|
||||||
|
@ -47,7 +47,7 @@ if (isset($_COOKIE['userData'])) {
|
|||||||
|
|
||||||
$role = $userData['role'];
|
$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 "<div class='event-container'>";
|
||||||
echo "<img src='https://cdn-icons-png.flaticon.com/512/2538/2538566.png' alt='Avatar'>";
|
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>";
|
echo "<h2 class='event-title'>Créer un nouvel évènement</h2>";
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1795,205 +1795,6 @@
|
|||||||
"$ref": "AAAAAAGQHEsGE1+fiXs="
|
"$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",
|
"_type": "UMLUseCaseView",
|
||||||
"_id": "AAAAAAGQHEs92F/xhtY=",
|
"_id": "AAAAAAGQHEs92F/xhtY=",
|
||||||
@ -2757,101 +2558,6 @@
|
|||||||
"$ref": "AAAAAAGQHEzVTGDW0ZE="
|
"$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",
|
"_type": "UMLExtendView",
|
||||||
"_id": "AAAAAAGQHEz2eGHZo5o=",
|
"_id": "AAAAAAGQHEz2eGHZo5o=",
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -166,7 +166,6 @@ h2 {
|
|||||||
color: white;
|
color: white;
|
||||||
font-size: 1.5rem;
|
font-size: 1.5rem;
|
||||||
margin-top: 1rem;
|
margin-top: 1rem;
|
||||||
padding-left: 2rem;
|
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
font-family: "RobotoFlex";
|
font-family: "RobotoFlex";
|
||||||
}
|
}
|
||||||
@ -335,13 +334,13 @@ input[type="checkbox"] + label::before {
|
|||||||
border-radius: 4px;
|
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 {
|
input[type="checkbox"]:checked + label::before {
|
||||||
background-color: #007bff;
|
background-color: #007bff;
|
||||||
border-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 {
|
input[type="checkbox"]:checked + label::after {
|
||||||
content: "✓";
|
content: "✓";
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@ -362,16 +361,24 @@ input[type="checkbox"]:checked + label::after {
|
|||||||
appearance: none; /* Pour supprimer le style par défaut */
|
appearance: none; /* Pour supprimer le style par défaut */
|
||||||
-webkit-appearance: none; /* Pour Safari */
|
-webkit-appearance: none; /* Pour Safari */
|
||||||
-moz-appearance: none; /* Pour Firefox */
|
-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-repeat: no-repeat;
|
||||||
background-position: right 0.5rem center; /* Ajustez selon la taille de votre padding */
|
background-position: right 0.5rem center;
|
||||||
background-size: 1.5rem; /* Ajustez selon la taille souhaitée pour l'icône */
|
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 {
|
.form-group select option {
|
||||||
background-color: #34353a; /* Pour que le fond des options corresponde au select */
|
background-color: #34353a;
|
||||||
color: #fffe; /* Couleur du texte des options */
|
color: #fffe;
|
||||||
}
|
}
|
||||||
|
|
||||||
.event-container img {
|
.event-container img {
|
||||||
@ -421,8 +428,8 @@ button.new-event:hover {
|
|||||||
|
|
||||||
.events-flex-container {
|
.events-flex-container {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap; /* Permet aux éléments de passer à la ligne suivante si nécessaire */
|
flex-wrap: wrap;
|
||||||
gap: 1rem; /* Ajoute un espace entre les divs */
|
gap: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.event-card {
|
.event-card {
|
||||||
@ -430,9 +437,7 @@ button.new-event:hover {
|
|||||||
padding: 1rem;
|
padding: 1rem;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.5);
|
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.5);
|
||||||
width: calc(
|
width: calc(50% - 1rem);
|
||||||
50% - 1rem
|
|
||||||
); /* Prend la moitié de l'espace disponible, en déduisant l'espace de la 'gap' */
|
|
||||||
max-width: 400px;
|
max-width: 400px;
|
||||||
margin: 0 auto 1rem;
|
margin: 0 auto 1rem;
|
||||||
}
|
}
|
||||||
|
@ -1,19 +1,13 @@
|
|||||||
<?php
|
<?php
|
||||||
// Démarrage de la session pour accéder aux variables de session
|
|
||||||
session_start();
|
session_start();
|
||||||
|
|
||||||
// Vérifier et détruire le cookie utilisateur
|
|
||||||
if (isset($_COOKIE['userData'])) {
|
if (isset($_COOKIE['userData'])) {
|
||||||
// Effacer la valeur du cookie
|
|
||||||
unset($_COOKIE['userData']);
|
unset($_COOKIE['userData']);
|
||||||
// Demander au navigateur de supprimer le cookie
|
setcookie('userData', '', time() - 3600, '/');
|
||||||
setcookie('userData', '', time() - 3600, '/'); // Définit l'expiration du cookie à une heure dans le passé
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Nettoyer toutes les données de session
|
$_SESSION = array();
|
||||||
$_SESSION = array(); // Efface toutes les données stockées dans la session
|
|
||||||
|
|
||||||
// Si vous voulez détruire complètement la session, supprimez également le cookie de session
|
|
||||||
if (ini_get("session.use_cookies")) {
|
if (ini_get("session.use_cookies")) {
|
||||||
$params = session_get_cookie_params();
|
$params = session_get_cookie_params();
|
||||||
setcookie(
|
setcookie(
|
||||||
@ -27,10 +21,8 @@ if (ini_get("session.use_cookies")) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Finalement, détruire la session
|
|
||||||
session_destroy();
|
session_destroy();
|
||||||
|
|
||||||
// Rediriger l'utilisateur vers la page de connexion ou la page d'accueil
|
|
||||||
header("Location: /account/login");
|
header("Location: /account/login");
|
||||||
exit();
|
exit();
|
||||||
?>
|
?>
|
@ -2,21 +2,9 @@
|
|||||||
require_once $_SERVER['DOCUMENT_ROOT'] . '/tools/dbConnect.php';
|
require_once $_SERVER['DOCUMENT_ROOT'] . '/tools/dbConnect.php';
|
||||||
session_start();
|
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'])) {
|
if (isset($_COOKIE['userData'])) {
|
||||||
$userDataEncoded = $_COOKIE['userData'];
|
$userDataEncoded = $_COOKIE['userData'];
|
||||||
$userData = json_decode($userDataEncoded, true); // 'true' pour obtenir un tableau associatif
|
$userData = json_decode($userDataEncoded, true);
|
||||||
|
|
||||||
$email = $userData['email'];
|
$email = $userData['email'];
|
||||||
$oldEmail = $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);
|
$resultUpdateUser = mysqli_query($db, $updateUser);
|
||||||
if ($resultUpdateUser) {
|
if ($resultUpdateUser) {
|
||||||
setcookie("userData", "", time() - 3600, "/");
|
setcookie("userData", "", time() - 3600, "/");
|
||||||
@ -55,38 +43,3 @@ 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>
|
|
@ -17,10 +17,10 @@ if (isset($_COOKIE['userData'])) {
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-12 col-md-6">
|
<div class="col-sm-12 col-md-6">
|
||||||
<h6>à propos</h6>
|
<h6>à propos</h6>
|
||||||
<p class="text-justify">Ce site est le fruit d'une SAÉ en informatique, développé par deux
|
<p class="text-justify">Ce site est le fruit d'une SAÉ en informatique, destiné à simuler des
|
||||||
étudiants, destiné à simuler des fonctionnalités du site officiel des Jeux Olympiques de Paris 2024.
|
fonctionnalités du site officiel des Jeux Olympiques de Paris 2024.Il a été conçu pour démontrer nos
|
||||||
Il a été conçu pour démontrer nos compétences en développement web et en gestion de données, tout en
|
compétences en développement web et en gestion de données, tout en offrant une expérience
|
||||||
offrant une expérience utilisateur interactive et informative.</p>
|
utilisateur interactive et informative.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-xs-6 col-md-3">
|
<div class="col-xs-6 col-md-3">
|
||||||
@ -62,6 +62,7 @@ if (isset($_COOKIE['userData'])) {
|
|||||||
echo "<a href='/account/login'>Connexion</a>";
|
echo "<a href='/account/login'>Connexion</a>";
|
||||||
} ?>
|
} ?>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -76,6 +77,10 @@ if (isset($_COOKIE['userData'])) {
|
|||||||
<a href="https://grond.iut-fbleau.fr/balocchi">Loris</a>
|
<a href="https://grond.iut-fbleau.fr/balocchi">Loris</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</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>
|
||||||
</div>
|
|
||||||
</footer>
|
</footer>
|
@ -3,8 +3,7 @@ require_once $_SERVER['DOCUMENT_ROOT'] . '/tools/dbConnect.php';
|
|||||||
|
|
||||||
if (isset($_COOKIE['userData'])) {
|
if (isset($_COOKIE['userData'])) {
|
||||||
$userDataEncoded = $_COOKIE['userData'];
|
$userDataEncoded = $_COOKIE['userData'];
|
||||||
$userData = json_decode($userDataEncoded, true); // 'true' pour obtenir un tableau associatif
|
$userData = json_decode($userDataEncoded, true);
|
||||||
|
|
||||||
$email = $userData['email'];
|
$email = $userData['email'];
|
||||||
$name = $userData['name'];
|
$name = $userData['name'];
|
||||||
$familyName = $userData['familyName'];
|
$familyName = $userData['familyName'];
|
||||||
@ -13,15 +12,12 @@ if (isset($_COOKIE['userData'])) {
|
|||||||
?>
|
?>
|
||||||
|
|
||||||
<nav class="menu-container">
|
<nav class="menu-container">
|
||||||
<!-- burger menu -->
|
|
||||||
|
|
||||||
<input type="checkbox" aria-label="Toggle menu" />
|
<input type="checkbox" aria-label="Toggle menu" />
|
||||||
|
|
||||||
<span></span>
|
<span></span>
|
||||||
<span></span>
|
<span></span>
|
||||||
<span></span>
|
<span></span>
|
||||||
|
|
||||||
<!-- logo -->
|
|
||||||
<a href="<?php
|
<a href="<?php
|
||||||
if (isset($_COOKIE['userData'])) {
|
if (isset($_COOKIE['userData'])) {
|
||||||
echo "/?res=login-succeeded";
|
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" />
|
<img src="https://i.imgur.com/RkmSo9Q.png" alt="Jeux Olympiques - Paris 2024" />
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<!-- menu items -->
|
|
||||||
<div class="menu">
|
<div class="menu">
|
||||||
<ul>
|
<ul>
|
||||||
<?php
|
<?php
|
||||||
@ -42,7 +37,7 @@ if (isset($_COOKIE['userData'])) {
|
|||||||
echo "<li class='dropdown'>";
|
echo "<li class='dropdown'>";
|
||||||
echo "<a href='/admin'>Panel d'administration</a>";
|
echo "<a href='/admin'>Panel d'administration</a>";
|
||||||
echo "<ul class='dropdown-content'>";
|
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 "</ul>";
|
||||||
echo "</li>";
|
echo "</li>";
|
||||||
@ -58,22 +53,18 @@ if (isset($_COOKIE['userData'])) {
|
|||||||
$role = $userData['role'];
|
$role = $userData['role'];
|
||||||
if ($role == 'Administrateur') {
|
if ($role == 'Administrateur') {
|
||||||
echo "<li><a href='/events/new'>Créer un nouvel évènement</a></li>";
|
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/list'>Rechercher un évènement</a></li>";
|
||||||
echo "<li><a href='/events/book'>S'inscrire à un évènement</a></li>";
|
|
||||||
} else if ($role == 'Sportif') {
|
} else if ($role == 'Sportif') {
|
||||||
echo "<li><a href='/events/participate'>Participer à un évènement</a></li>";
|
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/list'>Rechercher un évènement</a></li>";
|
||||||
echo "<li><a href='/events/book'>S'inscrire à un évènement</a></li>";
|
|
||||||
} else if ($role == "Organisateur") {
|
} else if ($role == "Organisateur") {
|
||||||
echo "<li><a href='/events/new'>Créer un nouvel évènement</a></li>";
|
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/list'>Rechercher un évènement</a></li>";
|
||||||
echo "<li><a href='/events/book'>S'inscrire à un évènement</a></li>";
|
|
||||||
} else if ($role == "Membre") {
|
} else if ($role == "Membre") {
|
||||||
echo "<li><a href='/events/list'>Liste des évènements</a></li>";
|
echo "<li><a href='/events/list'>Rechercher un évènement</a></li>";
|
||||||
echo "<li><a href='/events/book'>S'inscrire à un évènement</a></li>";
|
|
||||||
}
|
}
|
||||||
} else {
|
} 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>
|
<li>
|
||||||
<?php
|
<?php
|
||||||
if (isset($_COOKIE['userData'])) {
|
if (isset($_COOKIE['userData'])) {
|
||||||
//echo "<a href='/account/profile'>Mon profil</a>";
|
|
||||||
$userName = "" . $userData['name'] . " " . $userData['familyName'] . "";
|
$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 "<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 {
|
} else {
|
||||||
echo "<a href='/account/login'>Connexion</a>";
|
echo "<a href='/account/login'>Connexion</a>";
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user