Page 1 sur 1

Fonction cookie_destroy();

Posté : 15 mars 2012, 08:33
par MEGAFILES
Bonjour à tous, je viens de faire la fonction cookie destroy qui est plutôt bien !
public static function DestroyCookies()
	{
		$cookies = array("cookname", "cookname");
		
		foreach ($cookies as $key)
		{
			if (isset($_COOKIE[$key]))
			{
				unset($_COOKIE[$key]); 
				return setcookie($key, NULL, -1); 
			}
		}
	}
dans mon class.core.php

et dans mon global.php
function cookie_destroy()
		{
			global $core;
			
			return $core->DestroyCookies();
		}
N'hésitez pas à proposer une amélioration à ce code :p

Re: Fonction cookie_destroy();

Posté : 15 mars 2012, 10:09
par xTG
Si ton but est de supprimer tous les cookies de ton domaine le mieux est de parcourir le tableau $_COOKIES plutôt qu'un tableau avec valeur fixes.
Ainsi le jour où tu rajoutes un cookie tu n'auras pas à revenir dans cette fonction pour effectuer des modifications.

Re: Fonction cookie_destroy();

Posté : 15 mars 2012, 13:19
par MEGAFILES
Je ne vois pas comment m'y prendre !

Donc j'utilise if (isset($_COOKIE)) ?

Re: Fonction cookie_destroy();

Posté : 15 mars 2012, 15:30
par Mazarini
Regardes du coté de l'instruction foreach

Re: Fonction cookie_destroy();

Posté : 15 mars 2012, 22:07
par MEGAFILES
JE dois changer au niveau de
$cookies = array("cookname", "cookname");
?

Perso, j'ai changé par $_COOKIE et ça met une erreur, comment dois-je my-prendr E?

Re: Fonction cookie_destroy();

Posté : 15 mars 2012, 22:16
par xTG
$cookies = $_COOKIE;
?

Re: Fonction cookie_destroy();

Posté : 15 mars 2012, 22:18
par MEGAFILES
Oui, j'ai essayé avec ça et ça ne fonctionne pas!

public static function DestroyCookies()
	{
		$cookies = $_COOKIE;
		
		foreach ($cookies as $key)
		{
			if (isset($_COOKIE[$key]))
			{
				unset($_COOKIE[$key]); 
				setcookie($key, NULL, -1); 
			}
		}
	}

Re: Fonction cookie_destroy();

Posté : 15 mars 2012, 22:43
par MEGAFILES
Voici le correctif exact !
public static function DestroyCookies()
	{
		if (isset($_COOKIE))
		{
			foreach ($_COOKIE as $key => $value) // Ne pas enlever => $value
			{
				unset($_COOKIE[$key]); 
				setcookie ($key, NULL, time() - 3600);
			}
		}
	}

Re: Fonction cookie_destroy();

Posté : 16 mars 2012, 08:41
par xTG
Tu peux te passer du isset(), l'array $_COOKIE existe toujours et ce même s'il n'y a pas de cookie.