Résolu : Problème suppression cookie php

Résolu
ede42 Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   -  
ede42 Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   -
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

le père
 
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
0
ede42 Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   15
 
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 ?)
0
le père
 
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é ?
0
le père
 
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)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ede42 Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   15
 
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"
0