Bonjour à toutes et à tous.
Je rencontre une petite embûche que je n'arrive pas à franchir seul :-(
Je n'arrive pas à supprimer mes catégories... et pourtant, je n'ai aucun message d'erreur.
Après la validation de la suppression, ma catégorie est toujours en place. J'ai bel et bien ma clé qui s'affiche dans l'url:
"Portfolio/admin/ category.php?delete2&csrf=5785e942e81cdc624e3d357a5e787f01"
Mon problème peut il venir de la base de donnée ?
Voici ce que contient ma page category.php:
<?php
include '../lib/includes.php';
include '../partials/admin_header.php';
if(isset($_GET'delete'])){
checkCsrf();
$id = $db->quote($_GET'delete']);
$db->query("DELETE FROM categories WHERE id=$id");
setFlash('La catégorie à bien été supprimée');
header('Location:category.php');
die();
}
$select = $db->query('SELECT id, name, slug FROM categories');
$categories = $select->fetchALL();
?>
<section class="container">
<h1>Les catégories</h1>
<table class="table table-striped">
<thead>
<tr>
<th>Id</th>
<th>Nom</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<?php foreach ($categories as $category): ?>
<tr>
<td><?= $category'id'];?></td>
<td><?= $category'name'];?></td>
<td>
<a href="category_edit.php?id=<?= $category'id'];?>" class="btn btn-default">Editer</a>
<a href="?delete<?= $category'id']; ?>&<?=csrf();?>" class="btn btn-error" onclick="return confirm('Voulez vous vraiment supprimer ce post ?');">Supprimer</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</section>
<?php include '../partials/footer.php';?>
Ainsi que ma page auth.php:
<?php
session_start();
if(!isset($auth)){
if(!isset($_SESSION'Auth']'id'])){
header('Location:' .WEBROOT. 'login.php');
die();
}
}
if(!isset($_SESSION'csrf'])){
$_SESSION'csrf'] = md5(time() + rand());
}
function csrf(){
return 'csrf=' . $_SESSION'csrf'];
}
function checkCsrf(){
if(!isset($_GET'csrf']) || $_GET'csrf'] != $_SESSION'csrf']){
header('Location:' . WEBROOT .'csrf.php');
die();
}
}
?>
Merci infiniment pour vos conseils.
Cordialement.
Bonjour,
Regarde ton url et identifie les éléments qui y sont.
Petit aide : "delete2" c'est quoi.... ?
Mon erreur venait d'une faute d’inattention auprès de mon code (ligne 39).
<a href="?delete=<?= $category'id']; ?>&<?=csrf();?>" class="btn btn-error" onclick="return confirm('Voulez vous vraiment supprimer ce post ?');">Supprimer</a>
Merci beaucoup de m'avoir guidé jusqu'ici sans me donner de réponse.
Vous m'avez permis de regarder au bon endroit.
J'apprécie beaucoup l'aide que les gens nous apportent sur ce forum.
Bien à vous.