IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Tester si cookie existe


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2011
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2011
    Messages : 8
    Par défaut Tester si cookie existe
    Bonjour,

    J'aurais besoin de savoir si un cookie est déjà créé, et cela depuis différentes pages de mon site.

    J'ai ce code mais il ne fonctionne pas, je ne vois pas l'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script type="text/javascript">
    	if (navigator.cookieEnabled) {
    		if (document.cookie.indexOf("mycookie") == -1) {
    			le cookie n'existe pas !
    		}
    	}
    	</script>

    Quelqu'un a t-il une correction à apporter à ce code ou un code aussi simple qui fonctionne ?

    Merci par avance

  2. #2
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    Salut,

    Je sais pas si cela vient de là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (document.cookie.indexOf("mycookie") == -1) {
    			le cookie n'existe pas !
    		}
    mais tu n'as pas compris la philosophie de javascript:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (document.cookie.indexOf("mycookie") == -1) {
    			alert("le cookie n'existe pas !");
    		}

  3. #3
    Membre éclairé
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2009
    Messages : 447
    Par défaut
    Bonjour,
    normalement un coockie a un nom, donc on doit récuperer la valeur du coockie dans un variable, et testé si la variable est vide ou nom:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var contenucoockie=""+readCookie('nomcoockie');
    if(contenucoockie='null') {
    // coockie existe sinon n'existe pas
    }

  4. #4
    Nouveau membre du Club
    Inscrit en
    Septembre 2011
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2011
    Messages : 8
    Par défaut
    Cela ne fonctionne pas, es-tu sûr que readCookie fonctionne bien?

  5. #5
    Membre éclairé
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2009
    Messages : 447
    Par défaut
    readcoockie: fonction permet de lire un coockie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function readCookie(name) {
    	var nameEQ = name + "=";
    	var ca = document.cookie.split(';');
    	for(var i=0;i < ca.length;i++) {
    		var c = ca[i];
    		while (c.charAt(0)==' ') c = c.substring(1,c.length);
    		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    	}
    	return null;
    }
    pour créer un coockie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function createCookie(name,value,days) {
     
    	if (days) {
    		var date = new Date();
    		date.setTime(date.getTime()+(days*24*60*60*1000));
    		var expires = "; expires="+date.toGMTString();
    	}
    	else var expires = "";
    	document.cookie = name+"="+value+expires+"; path=/";
    }
    pour supprimer un coockie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function eraseCookie(name) {
    	createCookie(name,"",-1);
    }
    bonne chance

  6. #6
    Nouveau membre du Club
    Inscrit en
    Septembre 2011
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2011
    Messages : 8
    Par défaut
    Comme indiqué dans mon premier message, il me faut quelque chose de court. Si je me permettais d'utiliser une fonction alors j'aurais déjà trouvé une solution depuis longtemps.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <script type="text/javascript">
    	if (navigator.cookieEnabled) {
    		if (document.cookie.indexOf("mycookie") == -1) {
    			// action 1 ...
                            // action 2 : créer le cookie mycookie
    		}
    	}
    	</script>
    Dans mon code, si mycookie n'existe pas je fais des choses puis je finis par le créer. Le problème de ce code c'est la lecture du cookie : j'ai remarqué que document.cookie.indexOf("mycookie") lis le cookie uniquement si il a été créé par cette même page. Si mycookie est créé par page1.html seul page1.html pourra le savoir ! page1.html ne pourra pas savoir si page2.html à créé le cookie. Pareil pour l'inverse.

  7. #7
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Les fonctions viennent d'ici : http://ppk.developpez.com/tutoriels/...javascript/#LV

    Erudix, le code de ton test dans ton premier post était bon. Si ton script te dit que le cookie mycookie n'existe pas, c'est qu'il n'existe pas. Il faut te demander si la variable mycookie contient réellement ce que tu cherches, mais aussi si le cookie a été correctement écrit, notamment avec les bons paramètres domain ou path.

    Je te conseille de lire l'article entier pour adopter une manière homogène de déclarer tes cookies sur tout ton site.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tester lien in/existant
    Par yveslens dans le forum Langage
    Réponses: 3
    Dernier message: 03/07/2008, 17h46
  2. Réponses: 5
    Dernier message: 22/05/2008, 14h25
  3. Tester la non existence d'un fichier
    Par Pharmacos dans le forum Débuter
    Réponses: 3
    Dernier message: 20/05/2008, 20h25
  4. Tester les cookies
    Par sperron dans le forum ASP
    Réponses: 2
    Dernier message: 21/04/2006, 16h16
  5. Tester si fenêtre existe après submit
    Par ronald dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 06/01/2005, 16h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo