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:
@@ -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
|
||||
- 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>
|
Reference in New Issue
Block a user