Bonjour tout le monde, je suis entrain de suivre le tuto créer un portfolio de A à Z 3/5, mais je bloque à la partie de mise à jour ( update),il ne fait pas la mise à jour d'une catégorie,et il ne me sort aucune erreur ..voici mon code :
<?php
include'../lib/includes.php';
include'../patials/admin-index.php';
/**
*
* AJOUTER OU MODIFIER UNE CATÉGORIE
*
**/
if (isset($_POST'name']) && isset($_POST'slug'])) {
checkCsrf();
$slug=$_POST'slug'];
if (preg_match('/^[a-z\-0-9]+$/', $slug)) {
$slug=$bd->quote($_POST'slug']);
$name=$bd->quote($_POST'name']);
if (isset($_GET'id'])) {
/**
*
* modifier une categorie
*
**/
$id=$_GET'id'];
$bd->query("update categoris set name=$name,slug=$slug where id=$id");
}
else{
/**
*
* Ajouter une catégorie
*
**/
$bd->query("insert into categoris set name=$name,slug=$slug");
}
setflash('votre catégorie a été bien ajouter');
header("location:categorie.php");
die();
}
else{
setflash('le slug n\'est pas valide!!','danger');
}
}
/**
*
* récupérer les donnée pour faire une modification
*
**/
if (isset($_GET'id'])) {
$id=$bd->quote($_GET'id']);
$a=$id;
$select="select*from categoris where id=$id";
$res=$bd->query($select);
if ($res->rowCount()==0) {
setflash("il n'y a pas une catégorie avec cet ID merci de bien vérfier l ID","danger");
header("location:categorie.php");
}
$_POST=$res->fetch();
}
?>
<form action="category_edit.php" method="POST">
<div class="container">
<h2>Editer ou ajouter une categorie</h2>
<div class="form-group">
<label for="name">Nom:</label>
<?php echo input('name'); ?>
</div>
<div class="form-group">
<label for="slug">URL de Slug:</label>
<?php echo input('slug'); ?>
</div>
<?php echo inputcsrf(); ?>
<button type="submit" class="btn btn-primary">Enregistrer</button>
</div>
</form>
<?php
include'../patials/footer.php';
?>
J'ai l'impression qu'il n'entre pas dans la condition
if (isset($_GET'id'])) {
/**
*
* modifier une categorie
*
**/
$id=$_GET'id'];
$bd->query("update categoris set name=$name,slug=$slug where id=$id");
}
Bonjour,
Après lecture de ton code, rien ne me choque.
Maintenant, le problème peut venir de beaucoup d'endroits.
Il faut que tu vérifie que le flux de ton code soit correct.
Je te conseil de commenter toutes tes redirections, et de laisser des die().
(Au passage, il en manque un après le header de la ligne 62).
Si tu ne vois pas déjà le contenu des variables $_POST et $_GET, met les 2 lignes suivantes au tout début de ton fichier
var_dump($_GET);
var_dump($_POST);
Met des var_dump avec une chaine unique à des endroits clés, comme par exemple a la première ligne d'un if, pour t'assurer que le flux est bien rentré dedans.
L'objectif est de retracer le parcours de ton code, et ensuite d'analyser pourquoi il n'a pas pris le chemin attendu.
Bon courage ^^
Azerus