Safari 中的 PHP cookie 识别
PHP cookie recognition in Safari
嗨,我在
safari 中遇到了这个奇怪的错误,我在网站上有一个年龄检查器 en 每当访问者超过 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 不会。
这不是最好的解决方案,但这对我有用:
替换这个小脚本:
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 )));
}
由:
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 )));
} else if($_COOKIE['legal'] && icl_object_id(get_page_by_path('age-checker')->ID, 'page', false, ICL_LANGUAGE_CODE ) == $post->ID) {
header('Location: '. get_home_url());
}
在我设置 cookie 的 JavaScript 中:我只是重新加载页面
window.location.reload();
相关文章:
- 如何识别我的网站中的慢速设备
- 在jquery中为显示/隐藏设置cookie
- Google/html5语音识别JavaScript SDK Chrome网络工具包SpeechRecognition
- 按下按钮时保存cookie
- AngularJS指令只识别双向绑定类型
- php脚本中无法识别ajax传递的值
- 如何在Analytics.js中始终了解最新的cookie过期时间
- php httponly cookie在浏览器关闭时被删除
- 使用 javascript 设置的 cookie,无法使用 PHP 识别(相同的域和路径)
- 如何识别 Cookie 是从客户端或服务器端
- 通过小部件设置第三方cookie,这样我以后就可以识别用户了
- 使用客户端IP作为cookie,识别重复访问并在第一次访问后显示消息
- cookie如何识别名称、过期日期、路径
- Safari扩展cookie未被识别/通过
- Javascript无法在Chrome上创建/识别cookie
- Safari 中的 PHP cookie 识别
- 使用 JS 实现 cookie 以识别回访者
- PHP 无法识别 JavaScript cookie
- 识别cookie数据类型
- 用javascript cookie识别访问者进行调查