PHP cookie值仅在加载2页后才起作用

时间:2012-10-16 06:00:52

标签: php wordpress cookies

我知道这可能是一个非常初学者级的问题,但我只是一个月的PHP,所以请耐心等待。我想在WordPress博客中设置一个cookie。 Cookie从URL接收其值。 “http://www.xyz.com/?name=John”

这就是设置cookie的方式:

function set_name_cookie() {
    if (isset($_GET['name'])) {
        $name = $_GET['name'];
        setcookie("name", $name, time()+3600, "/", ".xyz.com", false);
    }
}
add_action( 'init', 'set_name_cookie');

HTML + PHP:

<?php if(isset($_COOKIE['name'])) {
      $name = $_COOKIE['name'];
      echo $name; 
?>
<a href="?name=John">John</a>
<a href="?name=Smith">Smith</a>

问题是,当我点击链接“John”或“Smith”时,页面会加载但名称不会回显。 我必须再次刷新以使名称回显。流程存在一些问题。帮助

1 个答案:

答案 0 :(得分:4)

当您设置cookie时,它不会在该页面加载时填充$_COOKIE,因为该变量是从浏览器发送给您的内容加载的。解决方法是在$_COOKIE['name'] = $name;语句后设置setcookie - 但这并不能保证浏览器接受并实际设置cookie - 只是一种在脚本中立即使用它的方法。 / p>