【问题标题】:How to set a cookie based on URL when site visitor manually changes the URL站点访问者手动更改 URL 时如何根据 URL 设置 cookie
【发布时间】:2015-05-08 20:57:14
【问题描述】:

我正在重新设计从 Joomla 到 MODX 的网站,并且想从当前网站复制一些内容,但找不到管理此内容的代码。基本上,当用户访问该站点时,他们的位置由 IP 确定,它将 URL 设置为example.com/dc-metro 之类的东西,并将一个名为“market”的 cookie 设置为“dc-metro”。网站上有一个供访问者更改其位置的下拉菜单,因此,例如,如果他们选择“Chicago”,则 URL 将变为 example.com/chicago,并且市场 cookie 的值将更新为“chicago”。这部分效果很好,我遇到的问题是,如果用户在example.com/dc-metro/cool-things-to-do,而不是使用下拉菜单来更改位置,他们手动将 URL 更改为example.com/chicago/cool-things-to-do,页面刷新,但 cookie 不是更新。

有没有办法像$SERVER['REQUEST_URI'](或类似的东西)一样从URL 中提取并在页面重新加载时设置cookie。我在网站上有几个地方显示了基于市场 cookie 的变量,这些都没有更新(例如,在我的下拉列表中,默认值是当前市场位置)。

非常感谢您的任何帮助。

【问题讨论】:

  • 您可以使用$_SERVER['PHP_SELF']$_SERVER['REQUEST_URI'],然后从中获取顶级目录并设置cookie。

标签: javascript php jquery cookies


【解决方案1】:

您可以使用parse_url 函数。例如:

$url_path = parse_url($SERVER['REQUEST_URI'], PHP_URL_PATH);
$path_parts = explode('/', trim($url_path,'/'));
$location = $path_parts[0];

$location 变量将包含您需要的内容。然后,您只需将 cookie 设置为正确的值。为此使用setcookie 函数。

【讨论】:

  • 谢谢!在玩了一些之后,我能够使用它并添加几行,以便 cookie 值立即更新而无需手动刷新页面。我真的很感激。
猜你喜欢
  • 1970-01-01
  • 2015-06-30
  • 2021-12-19
  • 1970-01-01
  • 2013-11-30
  • 2014-04-19
  • 2012-07-12
  • 2011-07-23
  • 2013-04-22
相关资源
最近更新 更多