2011-09-07 4 views
4

Salut à bon peuple de StackOverflow, j'ai un problème et j'espérais que certains d'entre vous pourriez être en mesure de me aider. Disons que je suis censé créer une sorte de boutique en ligne Wordpress sur www.webshop.com domaine, écrit en langue anglaise, avec un cookie nommé « cartItems » disponible pour ce domaine. Ok, pas de problème.les cookies Définition sur le domaine/sous-domaine

Le problème est que je dois aussi faire une version allemande du site et je dois faire la différence entre les cookies anglais et allemand. Maintenant, ma question est, si par exemple le site allemand est sur le www.webshop.com/de/ Je peux mettre un cookie allemand pour être disponible uniquement pour le domaine/de /, non? Mais comment puis-je définir ce cookie anglais sera disponible dans tous les domaines à l'exception de/de/one.

Si cela ne peut être fait serait-il possible si le site allemand était de.webshop.com

Merci pour toute l'aide

+2

'/de/'n'est pas un domaine Pourquoi ne pas stocker une langue drapeau à l'intérieur du cookie, ou même à l'intérieur du backend côté serveur –

+0

Ouais je comprends que je ne savais pas comment m'exprimer correctement Je ne peux pas utiliser le même cookie en raison des différentes devises et autres, je suppose qu'il pourrait être fait avec une sorte de conversion, mais je ne suis pas si bon :) –

+2

C'est ce qu'on appelle un "chemin", et étant donné que ce même terme est utilisé dans la spécification des cookies, il est un peu inquiétant que vous ne le connaissiez pas tout en essayant de construire une application de transaction d'argent avec cette technologie même.En tout cas, les chemins des cookies peuvent ne pas résoudre votre problème, mais en quelque sorte je me demande si c'est un bon design du tout; J'ai le sentiment que tout ceci devrait être fait côté serveur, et votre cookie ne devrait vraiment suivre que l'identifiant de la session ... –

Répondre

3

Il y a 3 façons dont vous pouvez séparer les en çais et des biscuits allemands

1) Domaine: Vous pouvez utiliser un www séparé. et de. sous-domaine comme vous l'avez mentionné. 2) Chemin: Vous pouvez utiliser le chemin, mais si votre cookie anglais est défini pour "/", il sera toujours accessible sous "/ de /". Donc, si vous voulez suivre cette route, vous devrez créer un chemin "/ en /" comme suggéré par Kerrek.

3) Nom: Donnez le cookie allemand un nom différent

Vous devez faire un de ces 3 pour avoir les cookies anglais et allemands séparés. Je pense que le fait d'avoir un sous-domaine distinct serait le meilleur, car non seulement vos chemins de cookies, mais tous vos chemins d'accès aux ressources seront les mêmes quelle que soit la langue.

0

Personnellement, je l'ai utilisé ce plugin pour résoudre ce problème : http://wpml.org/

Mais si vous préférez une solution gratuite, voici un très bon article: http://codex.wordpress.org/Multilingual_WordPress

+0

La chose amusante est que j'ai utilisé ce plugin jusqu'à hier et ça a bien fonctionné (c'est gratuit pour Wordpress v 3.0.5) mais maintenant je dois faire des changements à cause du panier/monnaie/idontevenknowanymore questions. Merci pour le commentaire –

5

Il est possible, même si bien sûr, vous devez utiliser deux nom de cookie différents, un pour les données FR et une pour les données DE.

L'utilisation d'un autre chemin (www.webshop.com pour FR et www.webshop.com/de/ pour DE):

// this will be available everywhere, both on the english version and the german one 
setcookie ('my_en_cookie_name', 'some data', time() + 24*30*3600, '/'); 
// this will only be visible when accessing the german website, english version user won't be able to see it 
setcookie ('my_de_cookie_name', 'some other data', time() + 24*30*3600, '/de/'); 

chemin pour cookie est un blocage vers l'arrière (il ne peut être lu de la répertoire spécifié ou d'un sous-répertoire de celui-ci, et non d'un parent d'un), donc si vous définissez un cookie avec le/de/chemin, il peut être lu/de/ou/de/foo/mais pas de/ou/bar /. De la même manière, si vous définissez un cookie avec un chemin de /, il peut être lu sur/de/ou/de/foo/ou/bar /.


L'utilisation d'un domaine différent (www.webshop.com pour FR et de.webshop.com pour DE):

// this will be available everywhere, both on the english version and the german one 
setcookie ('my_en_cookie_name', 'some data', time() + 24*30*3600, '/', '.webshop.com'); 
// this will only be visible when accessing the german website, english version user won't be able to see it 
setcookie ('my_de_cookie_name', 'some data', time() + 24*30*3600, '/', 'de.webshop.com'); 

FAITES ATTENTION: un cookie sur le domaine » .webshop.com "signifie que ce cookie sera envoyé à chaque sous-domaine de webshop.com, peu importe ce que c'est .. Assurez-vous que c'est ce que vous voulez

Questions connexes