Ajout du changements d'informations sur le /profile. Début pour le /event. Modification du CSS.
Co-authored-by: Charpentier Juliette <juliette.charpentier1@etu.u-pec.fr>
This commit is contained in:
parent
fb752fb563
commit
3fa7228209
@ -85,7 +85,7 @@ if (!$email) {
|
||||
}
|
||||
|
||||
|
||||
$newURL = "/account/profile";
|
||||
$newURL = "/";
|
||||
header("Location: " . $newURL);
|
||||
die();
|
||||
|
||||
|
@ -48,6 +48,15 @@ if (isset($_COOKIE['userData'])) {
|
||||
<img src="https://cdn-icons-png.flaticon.com/512/4139/4139948.png" alt="Avatar">
|
||||
<h2>Mettre à jour mes informations</h2>
|
||||
<p>Modifiez les informations de votre profil.</p>
|
||||
<?php
|
||||
if (isset($_GET['result'])) {
|
||||
if ($_GET['result'] == "updatefailed") {
|
||||
echo "<p class='text' style='color:red; padding-left:0;'>❎ Une erreur est survenue lors de la mise à jour de vos informations.</p>";
|
||||
} else if ($_GET["result"] == "updatesuccess") {
|
||||
echo "<p class='text' style='color:green; padding-left:0;'>✅ Vos informations ont été mises à jour avec succès.</p>";
|
||||
}
|
||||
}
|
||||
?>
|
||||
<form action="/tools/updater.php" method="post">
|
||||
<div class="form-group">
|
||||
<label for="name"><span style="color:red;"><abbr title="Requis">*</abbr></span> Prénom</label>
|
||||
|
@ -98,7 +98,7 @@ require_once $_SERVER['DOCUMENT_ROOT'] . '/tools/dbConnect.php';
|
||||
echo "<p class='text'>Rôle : " . $role . "</p>";
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
window.location.href = '/account/profile';
|
||||
window.location.href = '/';
|
||||
</script> <?php
|
||||
} else {
|
||||
echo "<p class='text'>Aucun utilisateur n\'a été ajouté.</p>";
|
||||
|
@ -1,5 +1,6 @@
|
||||
<?php
|
||||
require_once $_SERVER['DOCUMENT_ROOT'] . '/tools/dbConnect.php';
|
||||
session_start();
|
||||
|
||||
if (isset($_COOKIE['userData'])) {
|
||||
$userDataEncoded = $_COOKIE['userData'];
|
||||
@ -34,20 +35,26 @@ if (isset($_COOKIE['userData'])) {
|
||||
<?php include $_SERVER['DOCUMENT_ROOT'] . '/views/header.php'; ?>
|
||||
<h1>Panel d'administration</h1>
|
||||
<?php
|
||||
if (isset($_COOKIE['userData'])) {
|
||||
$role = $userData['role'];
|
||||
if ($role == 'Administrateur') {
|
||||
echo "<p class='text'>Vous êtes connecté en tant qu'administrateur.</p>";
|
||||
if (!isset($_COOKIE['userData'])) {
|
||||
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>";
|
||||
header("refresh:5; url=/");
|
||||
die();
|
||||
}
|
||||
} else {
|
||||
include ($_SERVER['DOCUMENT_ROOT'] . '/views/footer.php');
|
||||
|
||||
die("<p class='text'>Vous n'êtes pas autorisé à accéder à cette page.</p>");
|
||||
$role = $userData['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>";
|
||||
header("refresh:5; url=/");
|
||||
die();
|
||||
} else { // Si l'utilisateur est un administrateur : accès à la page
|
||||
echo "<p class='text'>Bienvenue sur le panneau d'administration du site.</p>";
|
||||
echo "<p class='text'>Vous pouvez ici gérer les utilisateurs.</p>";
|
||||
echo "<p class='text'>Que souhaitez-vous faire ?</p>";
|
||||
//contenu de la page admin
|
||||
} ?>
|
||||
|
||||
<!-- code de la page ici -->
|
||||
|
||||
|
||||
<?php include $_SERVER['DOCUMENT_ROOT'] . '/views/footer.php'; ?>
|
||||
</body>
|
||||
|
||||
|
@ -39,7 +39,7 @@ if (isset($_COOKIE['userData'])) {
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php include?>
|
||||
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/header.php') ?>
|
||||
|
||||
<!-- code de la page ici -->
|
||||
|
||||
|
@ -19,10 +19,33 @@
|
||||
|
||||
<!-- code de la page ici -->
|
||||
<h1>Évènements</h1>
|
||||
<?php
|
||||
if (isset($_POST['discipline'])) {
|
||||
$selectedDiscipline = $_POST['discipline'];
|
||||
$descriptionResult = mysqli_query($db, "SELECT description FROM `olympic_discipline` WHERE discipline = '$selectedDiscipline'");
|
||||
while ($row = mysqli_fetch_assoc($descriptionResult)) {
|
||||
echo "<p class='text'>" . $row['description'] . "</p>";
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<form method="POST">
|
||||
<?php
|
||||
$evenement = mysqli_query($db, "SELECT discipline FROM `olympic_discipline` ");
|
||||
echo "<select name='discipline'>";
|
||||
while ($row = mysqli_fetch_assoc($evenement)) {
|
||||
echo "<option>" . $row['discipline'] . "</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
?>
|
||||
<button><input type="submit" value="Afficher la description"></button>
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/footer.php') ?>
|
||||
|
||||
<script src="https://kit.fontawesome.com/f16a36bad3.js" crossorigin="anonymous"></script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
29
index.php
29
index.php
@ -1,9 +1,17 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<html lang="fr">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="title" content="Jeux Olympiques - Paris 2024" />
|
||||
<meta name="description" content="Site non-officiel des Jeux-Olympiques Paris 2024 (SAÉ Web)" />
|
||||
<meta name="keywords" content="Jeux-Olympiques, Paris, 2024, Informatique, SAÉ" />
|
||||
<meta name="author" content="Juliette CHARPENTIER & Loris BALOCCHI" />
|
||||
<meta name="robots" content="index, follow" />
|
||||
<meta name="revisit-after" content="7 days" />
|
||||
<meta name="language" content="French" />
|
||||
<meta name="theme-color" content="#d41942" />
|
||||
<link rel="stylesheet" href="/styles/main.css" />
|
||||
<link rel="stylesheet" href="/styles/header.css" />
|
||||
<link rel="stylesheet" href="/styles/footer.css" />
|
||||
@ -11,8 +19,6 @@
|
||||
<link rel="icon" type="image/png" sizes="32x32"
|
||||
href="https://tickets.paris2024.org/obj/media/FR-Paris2024/specialLogos/favicons/favicon-32x32.png" />
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="./style.css"> <!--truc pour la barre de recherche-->
|
||||
|
||||
<title>Accueil | Jeux Olympiques - Paris 2024</title>
|
||||
</head>
|
||||
|
||||
@ -26,16 +32,21 @@
|
||||
2024.</p>
|
||||
<p class="text">Vous pourrez également créer un compte pour accéder à des fonctionnalités supplémentaires.</p>
|
||||
|
||||
|
||||
<!-- barre de recherche -->
|
||||
<input id="searchbar" onkeyup="rechercher_evenement()" type="text" name="search"
|
||||
placeholder="Rechercher évènement..">
|
||||
<div class="searchbar">
|
||||
<input id="searchbar" placeholder="Rechercher évènement" type="text">
|
||||
<button type="submit"><i class="fas fa-search"></i> Rechercher</button>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
// $evenement = $_GET['bdr'];
|
||||
// $recherche = mysqli_query($db, "SELECT discipline
|
||||
// FROM olympic_discipline
|
||||
// WHERE discipline = '$evenement'");
|
||||
?>
|
||||
|
||||
|
||||
<!-- linking javascript -->
|
||||
<script src="./animals.js"></script>
|
||||
|
||||
<br><br><br><br><br><br><br><br><br>
|
||||
|
||||
|
||||
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/footer.php') ?>
|
||||
|
@ -13,6 +13,7 @@
|
||||
opacity: 0.97;
|
||||
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.5);
|
||||
font-family: RobotoFlex;
|
||||
margin-top: auto;
|
||||
}
|
||||
.site-footer hr {
|
||||
border-top-color: #bbb;
|
||||
|
@ -12,9 +12,10 @@ body {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 20px;
|
||||
background: #232323;
|
||||
background: #26272b;
|
||||
color: #cdcdcd;
|
||||
padding: 20px;
|
||||
padding-inline: 20px;
|
||||
height: 92px;
|
||||
z-index: 1;
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
@ -102,7 +103,8 @@ body {
|
||||
|
||||
.menu li {
|
||||
margin-top: 1rem;
|
||||
font-size: 21px;
|
||||
font-size: 18px;
|
||||
vertical-align: center;
|
||||
}
|
||||
|
||||
/* mobile styles */
|
||||
@ -174,6 +176,7 @@ body {
|
||||
.menu ul {
|
||||
display: flex;
|
||||
padding: 0;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.menu li {
|
||||
|
@ -17,6 +17,9 @@ body {
|
||||
overflow-x: hidden;
|
||||
font-family: "RobotoFlex";
|
||||
margin: 0;
|
||||
min-height: 100dvh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
body::before {
|
||||
content: "";
|
||||
@ -29,7 +32,7 @@ body::before {
|
||||
z-index: -1;
|
||||
}
|
||||
.login-container {
|
||||
background: #232323;
|
||||
background: #26272b;
|
||||
|
||||
align-items: center;
|
||||
opacity: 1;
|
||||
@ -170,3 +173,46 @@ p.text {
|
||||
padding-left: 2rem;
|
||||
font-family: "RobotoFlex";
|
||||
}
|
||||
|
||||
.avatar {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.searchbar {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
margin-top: 1rem;
|
||||
padding-left: 2rem;
|
||||
padding-right: 2rem;
|
||||
}
|
||||
.searchbar input {
|
||||
width: 100%;
|
||||
padding: 0.5rem;
|
||||
border: 1px solid #121216;
|
||||
border-radius: 5px;
|
||||
background-color: #34353a;
|
||||
color: #fffe;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
.searchbar input:focus,
|
||||
.searchbar input:not(:placeholder-shown) {
|
||||
border-color: #007bff;
|
||||
}
|
||||
.searchbar button {
|
||||
padding: 0.5rem;
|
||||
border: none;
|
||||
background-color: #f4b400;
|
||||
color: white;
|
||||
font-size: 1rem;
|
||||
font-weight: 700;
|
||||
cursor: pointer;
|
||||
border-radius: 5px;
|
||||
transition: all 0.3s ease;
|
||||
width: 17rem;
|
||||
margin-left: 0.25rem;
|
||||
}
|
||||
.searchbar button:hover {
|
||||
background-color: #f4a400;
|
||||
}
|
||||
|
@ -32,5 +32,5 @@ session_destroy();
|
||||
|
||||
// Rediriger l'utilisateur vers la page de connexion ou la page d'accueil
|
||||
header("Location: /account/login");
|
||||
exit(); // Assurez-vous de terminer le script après la redirection
|
||||
exit();
|
||||
?>
|
@ -1,27 +1,70 @@
|
||||
<?php
|
||||
require_once $_SERVER['DOCUMENT_ROOT'] . '/tools/dbConnect.php';
|
||||
session_start();
|
||||
|
||||
/*
|
||||
- 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
|
||||
- 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
|
||||
|
||||
$email = $userData['email'];
|
||||
$oldEmail = $userData['email'];
|
||||
$name = $userData['name'];
|
||||
$familyName = $userData['familyName'];
|
||||
$role = $userData['role'];
|
||||
}
|
||||
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||
$name = htmlspecialchars($_POST["name"]);
|
||||
$familyName = htmlspecialchars($_POST["family_name"]);
|
||||
$email = htmlspecialchars($_POST["email"]);
|
||||
$password = htmlspecialchars($_POST["password"]);
|
||||
$hashedPassword = sha1($password);
|
||||
|
||||
|
||||
|
||||
$updateUser = "UPDATE `user` SET `mail`='$email',`name`='$name',`family_name`='$familyName',`password`='$hashedPassword' WHERE mail = '$oldEmail'";
|
||||
$resultUpdateUser = mysqli_query($db, $updateUser);
|
||||
if ($resultUpdateUser) {
|
||||
setcookie("userData", "", time() - 3600, "/");
|
||||
$role = $userData['role'];
|
||||
$userData = array(
|
||||
"email" => $email,
|
||||
"name" => $name,
|
||||
"familyName" => $familyName,
|
||||
"role" => $role,
|
||||
);
|
||||
$userDataEncoded = json_encode($userData);
|
||||
setcookie("userData", $userDataEncoded, time() + 3600, "/");
|
||||
echo "<p class='text'>Utilisateur mis à jour avec succès. </p>";
|
||||
header("Location: /account/profile?result=updatesuccess");
|
||||
} else {
|
||||
echo "<p class='text'>Erreur lors de l'exécution de la requête.</p>";
|
||||
header("Location: /account/profile?result=updatefailed");
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
<!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 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"
|
||||
@ -31,74 +74,19 @@ require_once $_SERVER['DOCUMENT_ROOT'] . '/tools/dbConnect.php';
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/header.php');
|
||||
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/header.php') ?>
|
||||
|
||||
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||
$name = htmlspecialchars($_POST["name"]);
|
||||
$familyName = htmlspecialchars($_POST["family_name"]);
|
||||
$email = htmlspecialchars($_POST["email"]);
|
||||
$password = htmlspecialchars($_POST["password"]);
|
||||
}
|
||||
|
||||
$hashedPassword = sha1($password);
|
||||
|
||||
$query = "SELECT mail FROM user WHERE mail = '$email'";
|
||||
$result = mysqli_query($db, $query);
|
||||
|
||||
if (!$result) {
|
||||
die("Erreur lors de l'exécution de la requête.");
|
||||
}
|
||||
|
||||
$row = mysqli_fetch_assoc($result);
|
||||
|
||||
if ($row) {
|
||||
die("<p>Un utilisateur avec cette adresse mail existe déjà.</p>");
|
||||
}
|
||||
|
||||
$addUser = "INSERT INTO `user`(`mail`, `name`, `family_name`, `role`, `password`) VALUES ('$email', '$name', '$familyName', '$role', '$hashedPassword')";
|
||||
|
||||
$resultAddUser = mysqli_query($db, $addUser);
|
||||
if (!$resultAddUser) {
|
||||
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>";
|
||||
|
||||
// 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>";
|
||||
echo "<p class='text'>" . $userDataEncoded . "</p>";
|
||||
|
||||
echo "<p class='text'>Prénom : " . $name . "</p>";
|
||||
echo "<p class='text'>Nom : " . $familyName . "</p>";
|
||||
echo "<p class='text'>Adresse mail : " . $email . "</p>";
|
||||
echo "<p class='text'>Mot de passe : " . $password . "</p>";
|
||||
echo "<p class='text'>Mot de passe hashé : " . $hashedPassword . "</p>";
|
||||
echo "<p class='text'>Rôle : " . $role . "</p>";
|
||||
<?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>";
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
window.location.href = '/account/profile';
|
||||
</script> <?php
|
||||
} else {
|
||||
echo "<p class='text'>Aucun utilisateur n\'a été ajouté.</p>";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
include ($_SERVER['DOCUMENT_ROOT'] . '/views/footer.php');
|
||||
?>
|
||||
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/footer.php') ?>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -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">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quo consequatur illum,
|
||||
officiis nisi porro minus voluptates impedit unde perspiciatis commodi? Mollitia dolores dolore
|
||||
deserunt. Numquam officia ex vitae, ipsum veritatis atque recusandae accusantium consequatur
|
||||
dolorum.</p>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-6 col-md-3">
|
||||
|
@ -14,7 +14,9 @@ if (isset($_COOKIE['userData'])) {
|
||||
|
||||
<nav class="menu-container">
|
||||
<!-- burger menu -->
|
||||
|
||||
<input type="checkbox" aria-label="Toggle menu" />
|
||||
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
@ -42,23 +44,27 @@ if (isset($_COOKIE['userData'])) {
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><?php
|
||||
if (isset($_COOKIE['userData'])) {
|
||||
echo "<a href='/tools/logout.php' title='Déconnexion'><i class='fas fa-sign-out-alt'></i></a>";
|
||||
}
|
||||
?></li>
|
||||
<li>
|
||||
<?php
|
||||
if (isset($_COOKIE['userData'])) {
|
||||
echo "<a href='/account/profile'>Mon profil</a>";
|
||||
//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>";
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<!-- script php qui vérifie le cookie. Si cookie, propose déconnexion, si pas cookie propose connexion -->
|
||||
</li>
|
||||
<li><?php
|
||||
if (isset($_COOKIE['userData'])) {
|
||||
echo "<a href='/tools/logout.php'>Déconnexion</a>";
|
||||
}
|
||||
?></li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
<script src="https://kit.fontawesome.com/f16a36bad3.js" crossorigin="anonymous"></script>
|
Loading…
Reference in New Issue
Block a user