0

我知道这可能是一个非常初级的问题,但我才刚接触 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”链接时,页面加载但名称没有回显。我必须再次刷新才能使名称回显。流量有些问题。帮助?

4

1 回答 1

4

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

于 2012-10-16T06:06:19.183 回答