web-dev-qa-db-fra.com

Annuler les cookies php

J'ai ce code qui s'est installé lorsque la vérification de connexion est correcte:

if((isset($_POST["remember_me"]))&&($_POST["remember_me"]==1))
    {
    setcookie('email', $username, time()+3600);
    setcookie('pass', $pass, time()+3600);
    }

Maintenant, quand je clique sur le lien de déconnexion (logout.php) , J’ai fait ceci:

<?php session_start();
setcookie("email", '', 1, "");
setcookie("pass", '', 1, "");
$_SESSION["login"] = "";
header("location: aforum/enter_furom.php");
?>

Je n'ai pas utilisé la session de destruction parce que je ne veux pas détruire toutes les sessions ... Maintenant, détruire une session fonctionne bien ... mais lorsque j'essaie de supprimer les cookies, les navigateurs (tous les navigateurs: Explorer, chrome, firefox, mozilla) me donnent une erreur en disant que les nouveaux cookies ne peuvent pas être configurés ... aucune aide pour supprimer les cookies ci-dessus?

10
michael

soit utiliser la variable superglobal _COOKIE:

unset($_COOKIE['mycookiename']);

ou appelez setcookie() avec seulement le nom du cookie

setcookie('mycookiename');

Pour réinitialiser vos cookies à la déconnexion, utilisez:

setcookie('pass');
setcookie('email');

Pour vous connecter, vérifiez:

if(
  isset($_POST["remember_me"]) &&
  $_POST["remember_me"]==1  &&
  $_COOKIE['pass'] != NULL &&
  $_COOKIE['email'] != NULL &&
)
12
Gung Foo
setcookie('cookiename', '', time()-3600);
6
xtds

Vérifiez dans votre navigateur le répertoire dans lequel le cookie est utilisé. Et désactivez-le en spécifiant le chemin du cookie. Comme dans l'exemple si le répertoire de cookie est /aforum/

setcookie ("email","",time()-1,"/aforum/","http:// yourdomain.com");
2
Richard

Dans Chrome et IE8 + au moins, les éléments suivants vont supprimer le cookie du navigateur. Toutefois, il ne sera reflété dans le tableau $_COOKIE que lorsque la page sera rechargée.

setcookie('cookiename','',0,'/',$cookieDomain)

vous pourrez peut-être laisser quelques paramètres ici, mais l'important est de définir une chaîne vide, ce qui supprime le cookie du navigateur.

1
NappingRabbit

Pour supprimer les cookies en PHP, définissez simplement leur heure d'expiration sur une heure antérieure. Par exemple:

$expire = time() - 300;
setcookie("email", '', $expire);
setcookie("pass", '', $expire);
1
BenM

Vous devez définir votre heure d'expiration au passé, par exemple.

setcookie('email', '', time()-3600);

De plus, vous devriez utiliser un Absolute URI pour votre header('Location:' ....).

0
Martin

essaye ça

    setcookie ("email", "", time() - 3600);
    setcookie ("pass", "", time() - 3600);
0
Nikunj