我正在尝试在$ _GET的wordpress中设置一个cookie,所以我把它放在我主题的函数底部.php:
function set_name_cookie() {
if (isset($_GET['kw'])) {
setcookie('kw',$_GET['kw'], time()+3600*24, '/','.website.com',false);
}
}
add_action( 'init', 'set_name_cookie');
我可以看到他们在Firefox中设置的Cookie。我第一次加载页面时没有设置此cookie,但是如果我重新加载页面则是。
许多人都有类似的问题,在页面加载之前不会设置Cookie,因此他们无法在同一页面中动态使用$ _COOKIE [' kw']。设置,但这不是我的问题,它只是没有设置,当我转到下一页时,$ _COOKIE仍然是空的,除非我重新加载第一页(使用?kw = XXX) URL)。什么可能导致这种行为?这是它应该如何运作的吗?
编辑 - 当我访问mysite.com/test.php?kw=123,如下所示:
<?
session_start();
if (isset($_GET['kw'])) {
setcookie('kw',$_GET['kw'], time()+3600*24,'/',$_SERVER['HTTP_HOST'],false);
}
?>
<html>
<a href="test2.php">check cookie</a>
</html>
然后点击指向test2.php的链接,如下所示:
session_start();
echo 'cookie:'.print_r($_COOKIE);
exit;
我没有看到一个cookie,它只是空阵列。如果我在浏览器中返回test.php然后再次点击,我就能看到它。我错过了一些非常明显的东西吗?