Résolu : Problème suppression cookie php

Résolu
Bonjour,

j'ai un petit souci pour effacer les cookies en php.

Je créé tout d'abord mes cookies :

$expire = 365*24*3600; // on définit la durée du cookie, 1 an 
setcookie("Net[mail]",$_POST['mail'],time()+$expire, "/"); 
setcookie("Net[telephone]",$_POST['telephone'],time()+$expire, "/"); 
.... plus d'autres cookies 


j'ai une condition pour supprimer les cookies (je rentre bien dedans) :

// Après le rechargement de la page, nous les affichons 
if (isset($_COOKIE['Net'])) { 
    foreach ($_COOKIE['Net'] as $name => $value) { 
        $name = htmlspecialchars($name); 
        $value = htmlspecialchars($value);         
        echo "$name : $value <br />\n"; 
  setcookie('Net[$name]','', time() - 3600,'/'); // suppression du cookie 
    } 
} 
// On écrase le tableau de session 
$_SESSION = array(); 

// On détruit la session 
session_destroy();


Pourtant mes cookies sont bien toujours la !!!

Comment faire pour les effacer svp ?

5 réponses

  1. Bonjour

    setcookie("Net[$name]",'', time() - 3600,'/'); // suppression du cookie
    

    Il faut des double quotes autour de la chaîne qui contient $name pour que $name soit bien pris comme une variable et remplacé par sa valeur
    1. Bonjour,

      J'ai fais la modification mais sa ne change rien, les cookies sont toujours bien la ...

      Par contre, j'ai un cookie qui se nomme PHPSESSID, si je fais :

      setcookie("PHPSESSID",'', time() - 3600,'/');

      sa fonctionne bien (est-ce du a mon tableau ?)
      1. Je viens de vérifier en copiant-collant ton code et en mettant des double quotes, ça fonctionne bien.
        Es-tu sûr de ne pas re-créer tes cookies après leur destruction ?
        Peux-tu montrer ton code modifié ?
        1. Pour vérification :
          <?php 
          
            if (isset($_COOKIE['Net'])) { 
              print_r($_COOKIE); 
              foreach ($_COOKIE['Net'] as $name => $value) { 
                  $name = htmlspecialchars($name); 
                  $value = htmlspecialchars($value);         
                  echo "$name : $value <br />\n"; 
            setcookie("Net[$name]",'', time() - 3600,'/'); // suppression du cookie 
              } 
            } else { 
              $expire = 365*24*3600; // on définit la durée du cookie, 1 an 
              setcookie("Net[mail]",'toto',time()+$expire, "/"); 
              setcookie("Net[telephone]",'tata',time()+$expire, "/"); 
            } 
          ?> 
          <br />fini
          affiche bien les cookies une fois sur deux (une fois créés, une fois détruits)
          1. Je te remercie pour ta réponse !!!

            En faite à force de faire des modifs j'avais mis :
            setcookie("Net[mail]",$_POST['mail'],time()+$expire;

            En remettant setcookie("Net[mail]",$_POST['mail'],time()+$expire, "/"); avec ton code qui va bien, sa fonctionner.

            Merci beaucoup pour ton aide "le père"