【发布时间】:2019-10-09 22:28:19
【问题描述】:
我正在尝试制作一个简单的插件,在用户第一次访问该网站时欢迎他们,但我不断收到“标头已发送”错误。
我知道此错误与未在标头中发送的 cookie 有关。而且我已经找到了一些解决方案,但没有一个可以在插件中使用。我可以在插件中完成所有这些吗? (我正在尝试在 wordpress 小部件中写这个)
if (!isset($_COOKIE['visited'])) {
setcookie ('visited', 'yes', time() + 3600);
echo "Welcome.";
}
else{
echo "Welcome back";
}
因此,如果用户第一次访问该网站,我希望他看到“欢迎”,但如果他是回访者,我希望显示“欢迎回来”,
【问题讨论】:
-
由于 cookie 在响应标头中发送,并且标头在 任何输出之前发送,因此您还需要在任何输出之前设置 cookie。
-
您可以在 JS 中设置 cookie,然后使用 PHP 读取它。如果不存在,则为新用户;如果存在,则为老用户。您还可以将代码移动到任何输出之前的某个位置(并将问候字符串存储在一个变量中以供以后使用)。
标签: php wordpress cookies plugins