Files
Portfolio-Esteban/scripts/updateSkill.php
T
2026-07-03 02:02:13 +02:00

56 lines
1.8 KiB
PHP

<?php
// On démarre la session
require_once(__DIR__ . '/../functions/security.php');
// On ajoute la DB
require_once('../functions/databaseConnection.php');
// On ajoute les logs Discord
require_once('../functions/sendLogs.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;
}
// Vérification du jeton CSRF : bloque les requêtes forgées depuis un autre site
requireCsrfToken();
if ( // Si les champs sont vides on renvoie vers admin.php
!isset($_POST['id']) || !is_numeric($_POST['id']) ||
empty($_POST['title']) ||
empty($_POST['items'])
) {
header('Location: ../pages/admin.php');
exit;
}
// On récupère les données pour les mettres en variables locales
$id = (int) $_POST['id'];
$title = trim($_POST['title']);
$icon = trim($_POST['icon'] ?? '');
$items = trim($_POST['items']);
$position = (int) ($_POST['position'] ?? 0);
try { // On essaie d'executer une requête qui est préparée
$stmt = $dbh->prepare('
UPDATE skills
SET title = :title, icon = :icon, items = :items, position = :position
WHERE id = :id
');
$stmt->bindValue(':title', $title, PDO::PARAM_STR);
$stmt->bindValue(':icon', $icon, PDO::PARAM_STR);
$stmt->bindValue(':items', $items, PDO::PARAM_STR);
$stmt->bindValue(':position', $position, PDO::PARAM_INT);
$stmt->bindValue(':id', $id, PDO::PARAM_INT);
$stmt->execute(); // Sinon on renvoie l'erreur
} catch (PDOException $e) {
die("Erreur lors de la modification de la compétence :" . $e->getMessage());
}
// Log Discord
sendLog("Modification de la catégorie de compétences : " . $title . " (id " . $id . ")");
// On renvoie l'utilisateur sur admin.php
header('Location: ../pages/admin.php');
exit;