ajout projet cms elyes

This commit is contained in:
elyes
2025-11-03 00:39:36 +01:00
parent a1f7262e89
commit daa719eac7
25 changed files with 924 additions and 0 deletions

View File

@@ -0,0 +1,76 @@
<?php
// Inclusion des fichiers de config, BDD et fonctions
require_once __DIR__ . '/../inc/config.php';
require_once __DIR__ . '/../inc/db.php';
require_once __DIR__ . '/../inc/functions.php';
// Vérifie que l'utilisateur est connecté, sinon redirection
require_login();
$errors = [];
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Vérifie la validité du jeton CSRF pour éviter les attaques
verify_csrf();
// Récupération et nettoyage des champs du formulaire
$titre = trim($_POST['titre'] ?? '');
$contenu = trim($_POST['contenu'] ?? '');
// Vérifie si les champs obligatoires sont remplis
if ($titre === '' || $contenu === '') {
$errors[] = "Tous les champs sont obligatoires.";
}
// Si pas d'erreurs, insertion de l'article dans la base
if (!$errors) {
$stmt = $pdo->prepare("INSERT INTO articles (user_id, titre, contenu, date_creation) VALUES (:uid, :titre, :contenu, NOW())");
$stmt->execute([
'uid'=>current_user_id(), // ID de l'auteur connecté
'titre'=>$titre,
'contenu'=>$contenu
]);
// Redirection vers le tableau de bord après publication
header('Location: /admin/dashboard.php');
exit;
}
}
// Inclusion du header
require_once __DIR__ . '/../inc/header.php';
?>
<h2>Écrire un article</h2>
<!-- Affiche les erreurs éventuelles -->
<?php if ($errors): ?>
<div class="error">
<?php foreach ($errors as $e): ?>
<p><?= e($e) ?></p>
<?php endforeach; ?>
</div>
<?php endif; ?>
<!-- Formulaire de création d'article -->
<form method="post">
<?= csrf_input() ?> <!-- Jeton CSRF caché -->
<div class="form-group">
<label>Titre</label>
<input type="text" name="titre" value="<?= e($_POST['titre'] ?? '') ?>">
</div>
<div class="form-group">
<label>Contenu</label>
<textarea name="contenu"><?= e($_POST['contenu'] ?? '') ?></textarea>
</div>
<!-- Bouton publier et annuler -->
<button class="btn primary" type="submit">Publier</button>
<a class="btn" href="/admin/dashboard.php">Annuler</a>
</form>
<?php
// Inclusion du footer
require_once __DIR__ . '/../inc/footer.php';
?>