【问题标题】:how to maintain user preferences across multiple domains in PHP如何在 PHP 中跨多个域维护用户偏好
【发布时间】:2012-12-25 04:29:26
【问题描述】:

我正在用表达式引擎开发一个多语言网站。我正在为不同语言版本的网站使用不同的域,例如:www.site.en、www.site.jp 等。

现在我想跟踪访问者的语言偏好,即我想找出该用户/系统(无用户登录功能)最后访问了哪些域。 假设我访问 www.site.com 并切换到 www.site.jp 并关闭浏览器。

所以下次当用户访问这些域中的任何一个时,我想将用户重定向到他上次访问的域(在本例中为 www.site.jp)。

问题是我无法为另一个域设置 cookie。
我也没有用户登录功能。
我也不想使用第三方 cookie,因为它不是可靠的系统。

【问题讨论】:

  • 核心 php 或任何其他语言的建议都可以。

标签: php cookies cross-domain expressionengine redirectwithcookies


【解决方案1】:

在将用户重定向到 www.site.jp 之前,您应该在 www.site.com 中设置一个 cookie。因此,当用户再次访问 www.site.com 时,您的 PHP 脚本中的 cookie 是可读的,您可以再次重定向。

如果用户直接访问 www.site.jp,您不必担心,因为该网站已经是日文的。

或
始终重定向到 www.site.com/setcookie?lang=xx,
在任何域切换之前和 cookie 设置之后,进行必要的重定向

因此,理论上,www.site.com 始终为最后选择的语言保留一个 cookie,您可以使用它来重定向到 www.site.xx

或
而是使用多个域名,使用秒级目录进行分隔,比如

www.site.com/en
www.site.com/jp
www.site.com/zh

【讨论】:

  • 我考虑了您的第一个选择。但是,如果用户随后从 site.jp 转到 site.fr,那么当他下次访问 site.com 时,我怎么知道语言偏好是 site.fr。
  • 第二个选项是我现在正在使用的 rite,所以这很好,但我需要完全更改域。所以还有什么想法请分享...谢谢
  • @Avdhesh Bansal - 这可能是一个灰色区域...... 如果用户想要选择 JP 但您的脚本已经将他重定向到 FR ?我会再次更新你的第二个问题的答案
  • 虽然不是很整洁,但仍然 site.com/setcookie?lang=xx 方法确实适合。如果用户想选择 jp,那么我有一个语言覆盖选项,比如他的下拉菜单'将可以选择将所有这些网站的语言切换到任何其他网站。
猜你喜欢
  • 2023-03-14
  • 2010-09-19
  • 1970-01-01
  • 2011-02-09
  • 1970-01-01
  • 2015-11-22
  • 2011-07-16
  • 2013-09-15
  • 1970-01-01
相关资源
最近更新 更多