在第一页加载时设置cookie

时间:2015-12-04 18:51:42

标签: php cookies

我正在尝试在$ _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然后再次点击,我就能看到它。我错过了一些非常明显的东西吗?

0 个答案:

没有答案