Files
Portfolio-Esteban/scripts/updateSettings.php
T

44 lines
1.4 KiB
PHP

<?php
// On démarre la session
session_start();
// On ajoute la DB
require_once('../functions/databaseConnection.php');
// Si l'utilisateur n'est pas admin il ne peut pas executer le reste du script
if (!isset($_SESSION['role']) || $_SESSION['role'] !== 'admin') {
header('Location: ../pages/home.php');
exit;
}
// La requête doit être un POST sinon on l'a refuse
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
header('Location: ../pages/admin.php');
exit;
}
// On récupère les données pour les mettres en variables locales
// La checkbox n'est envoyée que si elle est cochée
$reglages = [
'site_notice_title' => trim($_POST['notice_title'] ?? ''),
'site_notice_text' => trim($_POST['notice_text'] ?? ''),
'site_notice_enabled' => isset($_POST['notice_enabled']) ? '1' : '0'
];
try { // On essaie d'executer une requête qui est préparée pour chaque réglage
// ON DUPLICATE KEY UPDATE : crée le réglage s'il n'existe pas encore, le met à jour sinon
$stmt = $dbh->prepare('INSERT INTO settings (name, value) VALUES (:name, :value) ON DUPLICATE KEY UPDATE value = VALUES(value)');
foreach ($reglages as $name => $value) {
$stmt->execute([
':name' => $name,
':value' => $value
]);
}
} catch (PDOException $e) {
die("Erreur lors de la modification de la notification :" . $e->getMessage());
}
// On renvoie l'utilisateur sur admin.php
header('Location: ../pages/admin.php');
exit;