Bonjour,

Je suis rendu à la suppression des catégories et j'ai un problème de header location : http://d.pr/i/1a0E

voilà le contenu de mon auth.php et category.php :

///////////////////////
/// 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'crsf']) || $_GET'crsf'] != $_SESSION'csrf']){
header('Location: ' . WEBROOT . 'csrf.php');
die();
}
}

///////////////////////
/// category.php
///////////////////////

<?php 
include '../lib/includes.php';
include '../partials/admin_header.php';
/**
* SUPPRESSION
**/
if(isset($_GET'delete'])){
checkCsrf();
$id = $db->quote($_GET'delete']);
$db->query("DELETE FROM categories WHERE id=$id");
Setflash('La catégorie a bien été supprimée');
header('Location:category.php');
die();
}
/**
* LISTE DES CATEGORIES
**/
$select = $db->query('SELECT id, name, slug FROM categories');
$categories = $select->fetchAll();
?>

J'ai volontairement pas mis le reste formulaire html et la boucle car elle fonctionne bien.

Merci pour votre aide

2 réponses


Sharka
Auteur

Edit à moi même :

if(!isset($_GET'crsf']) || $_GET'crsf'] != $_SESSION'csrf']){

remplacer : crsf par csrf

Setflash('La catégorie a bien été supprimée');

remplacer : Setflash par setFlash

mais toujours un problème de header : http://d.pr/i/DYr7

par contre quand je reviens sur la page admin/category.php la catégorie est bien supprimé et le flash s'affiche correctement ><

Sharka
Auteur

Voilà le contenu de mes 2 fichiers :

///////////////////////
/// includes.php
///////////////////////
<?php 
include 'constants.php';
include 'db.php';
include 'form.php';
// Session_start();
include 'auth.php';
include 'session.php';

///////////////////////
/// admin_header.php
///////////////////////
<!DOCTYPE html>
<html lang="fr">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="">
    <title>Mon administration</title>
    <!-- Bootstrap core CSS -->
    <link href="<?php echo WEBROOT ?>css/bootstrap.css" rel="stylesheet">
    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="<?php echo WEBROOT; ?>js/html5shiv.js"></script>
      <script src="<?php echo WEBROOT; ?>js/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>
    <div class="navbar navbar-inverse navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="<?php echo WEBROOT ?>admin/">Administration</a>
        </div>
        <div class="collapse navbar-collapse">
          <ul class="nav navbar-nav">
            <li><a href="category.php">Catégories</a></li>
            <li><a href="<?php echo WEBROOT ?>logout.php">Logout</a></li>
          </ul>
        </div>
      </div>
    </div>
    <div class="container" style="margin-top:60px;">

    <?php echo flash(); ?>

Effectivement, j'ai reproduit ton image http://i.imgur.com/HouUKnX.png et je n'ai plus le problème du header

Merci