我使用以下代码输出一个没有cookie的内容块,如果设置了cookie,则输出另一个数字。问题是getcookie
变量在刷新页面或用户导航到下一页之前不起作用。
我很乐意使用标头重定向,但不确定将其放在代码中的何处(除非有人对代码本身有更好的解决方案(:
if (is_page(817)) {
setcookie("phonecookie", 1, time()+3600, COOKIEPATH, COOKIE_DOMAIN);
}
if ($_COOKIE["phonecookie"] =="") {
echo "no cookie here";
} else {
echo "cookie stored!";
}
此外,如果访问者登录到WordPress中的特定页面,上面的代码会设置cookie。
有没有其他方法可以通过查询字符串来实现,例如example.com/?src=附属
试试这个
if ((is_page(817) && (!isset($_COOKIE["phonecookie"]) {
setcookie("phonecookie", 1, time()+3600, COOKIEPATH, COOKIE_DOMAIN);
//Your redirect code here
header("Location:yoururl);
} elseif (isset($_COOKIE["phonecookie"])) {
echo "cookie stored!";
} else {
echo "no cookie here or page is not 817";
}
使用标题重定向回同一页面:
if (is_page(817) && empty($_GET['redirect'])) {
setcookie("phonecookie", 1, time()+3600, COOKIEPATH, COOKIE_DOMAIN);
header("Location: http://url-for-this-page.com/path/?query=thequery&redirect=1");
exit(0);
}
redirect=1
已添加到url中,以在用户禁用cookie的情况下停止无限循环。