PHP的cookie值仅适用后2个页面加载(PHP cookie value works only

2019-08-01 12:29发布

我知道这可能是一个非常初级水平的问题,但仅仅一个月,我到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>

问题是,当我点击任何链接的“约翰”或“史密斯”,在页面加载,但名称不回应。 我不得不再次呼应名刷新 。 有一些问题与流动。 救命?

Answer 1:

当您设置一个cookie,它不填充$_COOKIE在该页面加载,因为该变量是从什么浏览器会将您加载。 一种用于该解决方法是设置$_COOKIE['name'] = $name; 你以后setcookie声明-但是,这并不能保证浏览器接受并实际设置Cookie -只是一种方法,使之在你的脚本立即可用。



文章来源: PHP cookie value works only after 2 page loads