2009-10-12 6 views
1

J'ai un cookie qui est sur chaque page de mon site. Cela fonctionne bien quand l'adresse est comme ceci. http://mydomain.com/index.html ou autre.cookie qui fonctionne avec tous les dossiers

mais quand j'ai une page qui se trouve dans un dossier comme celui-ci http://mydomain.com/folder/page.html

au lieu d'utiliser le cookie que je l'ai défini pour toutes les autres pages, il crée un nouveau cookie juste pour ce dossier. Est-il possible de conserver le même cookie pour tous les dossiers? Ou je suis juste en train de faire quelque chose de terrible?

Merci

mon code - j'ai cela dans un js externe. fichier

$(document).ready(function(){ 
    var cookie = $.cookie('cookiename'); 
    if (cookie) { 
    } 
    else { 
     $.cookie('cookiename', 'cookievalue'); 
    } 
}); 

$(document).ready(function() { 
    $('.watevevever').click(function() { 
    var va = $('#watev').css('display'); 
     if (va == 'none'){ 
      $('#watev').fadeIn("slow"); 
      $.cookie('cookiename', 'cookievalue'); 
     } 
     else { 
      $('#watev').fadeOut("slow"); 
      $.cookie('cookiename', 'cookievalue'); 
     } 
    }); 
    var va = $.cookie('cookiename'); 
    if (va == 'cookievalue') { 
     $('#watev').css("display","none"); 
    }; 
}); 
+0

Vous ne montrez pas le code où vous configurez et lire des cookies, il n'y a donc aucun moyen de savoir ce que vous faites mal. –

Répondre

3

Si vous utilisez this plugin pour jQuery (et sa source est here), il semble, en regardant à la source, que vous pouvez passer des paramètres supplémentaires en tant qu'objet, en tant que troisième paramètre de la méthode $.cookie.


Par exemple, à partir this tutorial, vous pouvez ajouter une date d'expiration:

$.cookie('the_cookie', 'the_value', { expires: 7 }); // set cookie with an expiration date seven days in the future 

regardant la source, vous avez cette portion de code:

var path = options.path ? '; path=' + (options.path) : ''; 
var domain = options.domain ? '; domain=' + (options.domain) : ''; 
var secure = options.secure ? '; secure' : ''; 


Alors, je supposons que vous pouvez utiliser un attribut "path" dans l'objet donné comme troisième paramètre, comme, par exemple:

$.cookie('the_cookie', 'the_value', {path: '/'}); 

Bien sûr, ce '/' est si vous voulez mettre en cookie pour tous les chemins sur votre domaine - ce qui semble être le cas.


Vous pouvez définir probablement aussi d'autres options, comme « domain », si vous voulez utiliser des sous-domaines, btw ...

+0

Cela a bien fonctionné! Merci +1 :) – PHPNooblet

1
$.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true }); 

les paramètres optionnels comprend 'chemin' .. qui devrait être '/'

Questions connexes