[Résolu en JS] Forcer l'utilisateur à activer les cookies

Petit nouveau ! | 2 Messages

05 juin 2007, 15:29

Bonjour à tous,

Je recherche le moyen d'afficher ce message tout bête quand les cookies ne sont pas activés dans le navigateur de l'internaute. Je n'ai pas trouvé grand chose pour le moment... A vrai dire, je ne suis pas sûr que PHP soit LA solution, ni la meilleure. J'ai testé ajoutant quelques lignes :

Code : Tout sélectionner

setcookie('test', testC, time()+3600); if ($_COOKIE['test']=='testC') { echo "Les cookies sont bien activés dans votre navigateur<br />";//debug } elseif (!$_COOKIE['test']) { echo "Vous devez autoriser les cookies dans votre navigateur.<br /> Veuillez les activer et recharger la page."; die; }
Cela ne fonctionne pas au premier chargement de la page... Au rechargement, par contre, cela marche correctement, et pour la durée de vie du cookie.

Quelqu'un pourrait-il m'orienter vers une solution ?
Merci :)
Modifié en dernier par Lurtz le 05 juin 2007, 17:04, modifié 3 fois.

Eléphant du PHP | 451 Messages

05 juin 2007, 15:39

Bonjour,
Il me semble que j'ai déjà fait ça avec un refresh et un test de variable qui me permet si je dois positionner le cookie ou le lire...
1) la variable n'est pas positionnée : j'écris le cookie et je fais refresh avec une variable initialisée dans l'url par la méthode get
2) la variable est positionnée, je tente de lire le cookie

Une recherche avec google sur 'php test cookies' m'a permis de tomber sur :
http://www.asp-php.net/ressources/codes ... okies.aspx
je pense qu'en s'en inspirant il y a moyen de s'en sortir...
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

Mammouth du PHP | 1776 Messages

05 juin 2007, 15:40

a part recharger la page, je ne vois pas... :roll:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

05 juin 2007, 15:42

Effectivement, l'inconvénient de cette méthode est décrite dans la doc
Erreurs communes :
Les cookies ne seront accessibles qu'au chargement de la prochaine page, ou au rechargement de la page courante. Pour tester si un cookie a été défini avec succès, vérifiez la présence du cookie au prochain chargement de la page avant que le cookie n'expire.
J'ai pas forcément de solution, mais à froid, ce que tu peux faire éventuellement, c'est coller le cookie et recharger juste après la page avec un header et un paramètre supplémentaire qui te dirait que tu dois tester le cookie à ce moment là...

Edit : Damn... grilled :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 2 Messages

05 juin 2007, 17:01

Vous confirmez ce que je pensais... Et la fonction setcookie() ne renvoie pas d'information permettant de savoir si le cookie a bien été créé ou non.

Ce n'est pas si simple que ça en PHP, alors en utilisant un peu mieux google (j'avais pourtant déjà cherché... :oops:) j'ai finalement trouvé une solution javascript beaucoup plus simple, dont je me suis inspiré :

http://www.editeurjavascript.com/script ... _3_192.php

Comme de toute façon le javascript doit être activé dans mon cas, ce n'est pas plus mal de laisser le client faire le travail.

Merci à tous pour votre aide :)