PHP setcookie 函数未在 wordpress 启动页面实现中设置


PHP setcookie function not being set on wordpress splash page implementation

所以我正在尝试在wordpress网站上实现一个启动页面。我已经环顾四周并阅读了如何使用PHP来做到这一点。启动页面的想法是将尚未查看该网站的人重定向到鼓励他们捐赠的启动页面。该页面已经设置为静态主页,我正在制作启动页面。这里提供的是我为 cookie 准备的代码,出于某种原因,当我进入 chrome 上的设置并检查 cookie 是否正在写入时,它没有显示。

<?php
  if((strpos($_SERVER['HTTP_REFERER'], get_bloginfo('home')) === false)  && !$_SERVER['QUERY_STRING'] && $_COOKIE["CookieName"] != 'true') :
  setcookie("CookieName", 'true', time() + 3600*24*15, "/~user/");
?>
//splash page code
<?php else : ?> //theme code <?php endif; ?>

else 条件是由主题创建的主页的信息。网站的 URL 格式为 siteIP/~user/ 。如果你们有一些反馈,将不胜感激。另外,如果您可以提供来源,以便我可以阅读它,也将不胜感激。谢谢你的时间。

很抱歉发布答案,但我无法发表评论,因为我没有代表。

除了查看上面的注释外,请尝试简化 - 检查 if 语句是否正在执行,然后您将知道 cookie 设置中是否有错误。

另外,引用的代码没有结束语句,我假设您在实际页面中有结束语句,但我想我会提到这一点。

它不起作用的原因是有一个文件覆盖了启动页面本身,因此启动页面上的代码首先没有被调用。这只是命名文件的问题,这样它就不会有任何其他文件覆盖您放在那里的内容。