当站点访问者手动更改 URL 时,如何根据 URL 设置 cookie
How to set a cookie based on URL when site visitor manually changes the URL
我正在进行从 Joomla 到 MODX 的站点重新设计,并且想从当前站点复制一些内容,但找不到管理它的代码在哪里。基本上,当用户访问该站点时,他们的位置由 IP 确定,它将 URL 设置为 example.com/dc-metro
之类的东西,并将名为 "market" 的 cookie 设置为 "dc-metro"。网站上有一个下拉菜单供访问者更改其位置,因此如果他们 select "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 的变量,并且这些地方没有更新(例如,在我的下拉菜单中,默认值是当前市场位置)。
非常感谢您的帮助。
您可以使用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
函数。
我正在进行从 Joomla 到 MODX 的站点重新设计,并且想从当前站点复制一些内容,但找不到管理它的代码在哪里。基本上,当用户访问该站点时,他们的位置由 IP 确定,它将 URL 设置为 example.com/dc-metro
之类的东西,并将名为 "market" 的 cookie 设置为 "dc-metro"。网站上有一个下拉菜单供访问者更改其位置,因此如果他们 select "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 的变量,并且这些地方没有更新(例如,在我的下拉菜单中,默认值是当前市场位置)。
非常感谢您的帮助。
您可以使用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
函数。