【发布时间】:2016-07-18 09:05:45
【问题描述】:
嗨,我在 safari 中遇到了这个奇怪的错误,我在网站上有一个年龄检查器,每当访问者年满 18 岁时,我都会使用 javascript 创建一个 cookie 并使用 window.location.href 将他转发到主页.
在主页我有以下脚本:
if(!$_COOKIE['legal'] && icl_object_id(get_page_by_path('age-checker')->ID, 'page', false, ICL_LANGUAGE_CODE ) != $post->ID) {
header('Location: '. get_permalink(icl_object_id(get_page_by_path('age-checker')->ID, 'page', false, ICL_LANGUAGE_CODE )));
}
如果未设置“合法”cookie 并且用户尚未在年龄检查器页面上,这会使用户重定向。
现在在 Chrome 和 firefox 上一切正常(尚未检查 IE),但在 safari 中,每当我通过年龄检查器并登陆主页时,它都会说尚未定义“已调整”cookie,但是我确实在控制台的存储面板中看到了它。在我重新加载页面后,它确实识别了 cookie。
有人知道如何解决这个问题吗?
编辑:
Javascript 会在第一次请求时识别 cookie,而 php 不会。
【问题讨论】:
-
可能是客户端没有在第一次请求时将 cookie 发送到服务器?
-
那么您认为什么是好的解决方案?有 2 个重定向或其他东西并不是很好。
-
是的,客户端应该只在第一次请求时向服务器发送 cookie。检查为什么没有在第一次请求时发送它。
-
您能给我一些有关如何执行此操作的相关链接吗?一直在谷歌搜索,但没有真正找到任何东西。
标签: javascript php jquery cookies safari