Fonction cookie

Résolu
Bonjour,
j'ai crée cette fonction pour détecter c un visiteur accepte les cookies

<?php
function cookieActive()
{
	setcookie('test_cookie','test_cookie',time()+10000);
	if(isset($_COOKIE['test_cookie']))
		return true;
	else
		return false;
}
?>


mais lorsque je test avec les cookies activés dans mon navigateur, le 1er test la fonction m'indique que les coockies ne sont pas active, après ça marche.

Voici le code pour le test :
<?php
if(!cookieActive())
{
	echo  'les cookies sont désactivés';
}
?>

pouvez-vous me dire pourquoi ca ne marche pas la premiere fois ?
Configuration: Windows XP
Firefox 3.0.3

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour

    Ca ne marche pas parce que isset($_COOKIE['test_cookie'])) teste si un cookie était défini chez le client lors de l'appel de ta page, alors que setcookie va créer ce cookie quand le client recevra cette information.
    Quand ta page a été appelée la 1ère fois, ton script n'avait pas encore été exécuté, donc le cookie n'était pas défini chez le client. Que tu places le test isset avant ou après le setcookie n'y change rien.
    Conclusion : ce n'est pas la bonne méthode pour savoir dès la 1ère page si un client accepte les cookies. Quelqu'un d'autre saura peut-être te comment il faut faire.