74 lines
2.8 KiB
PHP
74 lines
2.8 KiB
PHP
<?php
|
|
// Démarrage de la session pour vérifier les droits de l'utilisateur
|
|
session_start();
|
|
// Ajout de connexion à la BDD
|
|
require_once("../functions/databaseConnection.php");
|
|
|
|
// Vérification que l'utilisateur est bien admin
|
|
if (!isset($_SESSION["role"]) || $_SESSION["role"] != "admin") {
|
|
header("Location: ../pages/home.php");
|
|
exit();
|
|
}
|
|
|
|
// Si le formulaire a été soumis
|
|
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
|
// Récupération des données du formulaire
|
|
$user = $_POST["user"];
|
|
$role = $_POST["role"];
|
|
$passwd = $_POST["passwd"];
|
|
|
|
// Vérification que tous les champs sont remplis
|
|
if ($user == "" || $role == "" || $passwd == "") {
|
|
echo "Tous les champs doivent être remplis.";
|
|
exit();
|
|
} else {
|
|
// Vérification que le rôle est valide (admin ou user)
|
|
if ($role != "admin" && $role != "user") {
|
|
echo "Le rôle doit être admin ou user.";
|
|
exit();
|
|
} else {
|
|
try {
|
|
// Requête SQL pour vérifier si le nom d'utilisateur existe déjà
|
|
$sqlVerification = "SELECT * FROM users WHERE username = :username";
|
|
$requeteVerification = $dbh->prepare($sqlVerification);
|
|
$requeteVerification->execute([
|
|
":username" => $user
|
|
]);
|
|
|
|
$utilisateurExistant = $requeteVerification->fetch();
|
|
|
|
// Si l'utilisateur existe déjà, on affiche une erreur
|
|
if ($utilisateurExistant) {
|
|
echo "Ce nom d'utilisateur existe déjà.";
|
|
exit();
|
|
} else {
|
|
// Génération de la date de création
|
|
$dateCreation = date("Y-m-d H:i:s");
|
|
|
|
// Requête SQL d'insertion du nouvel utilisateur
|
|
$sqlAjout = "INSERT INTO users (username, password, role, created_at) VALUES (:username, :password, :role, :created_at)";
|
|
$requeteAjout = $dbh->prepare($sqlAjout);
|
|
$requeteAjout->execute([
|
|
":username" => $user,
|
|
":password" => $passwd,
|
|
":role" => $role,
|
|
":created_at" => $dateCreation
|
|
]);
|
|
|
|
// Redirection vers la page admin après succès
|
|
header("Location: ../pages/admin.php");
|
|
exit();
|
|
}
|
|
} catch (PDOException $e) {
|
|
// En cas d'erreur PDO, affichage du message
|
|
echo "Erreur pendant l'ajout de l'utilisateur : " . $e->getMessage();
|
|
exit();
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
// Si la requête n'est pas de type POST, redirection
|
|
header("Location: ../pages/admin.php");
|
|
exit();
|
|
}
|
|
?>
|