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:
2024-06-11 22:49:01 +02:00
parent fb752fb563
commit 3fa7228209
15 changed files with 212 additions and 118 deletions

View File

@@ -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();
?>

View File

@@ -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
- créer un cookie avec mail, nom, prénom, rôle. Qui expire dans 1h
- 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>";
?>
<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
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>