gpt4 book ai didi

php - 通过 functions.php 的 Wordpress Cookie 在页面重新加载之前不会读取 cookie?

转载 作者:行者123 更新时间:2023-12-02 01:17:48 25 4
gpt4 key购买 nike

我正在使用 wordpress 并在 functions.php 中创建了一个 cookie。

我的问题是这个 cookie 在创建时不被模板/页面读取,而是在它的第二个页面加载时读取。

是否有解决此问题的方法,以便我可以在创建 cookie 时读取它?

这是我当前在 functions.php 中的代码:

<?php
function my_cookie() {
$myvalue = 'hello';
if (!isset($_COOKIE['myCookie'])) {
setcookie("myCookie", $myvalue, time()+3600, "/", ".mydomain.com");
global $myglobal;
$_COOKIE['myCookie'] = $myglobal;

}
}
add_action( 'init', 'my_cookie');
?>

最佳答案

这是设计使然。使用 PHP 创建 cookie 时,它​​不会同时设置在 $_COOKIE 中找到的 super 全局。 cookie header 已发送,但已设置 cookie。

另一方面,$_COOKIE super 全局变量是在页面加载时由浏览器在其初始页面请求中发送的任何 cookie 设置的。

所以当你设置了一个 cookie 并且它被发送到浏览器并保存在客户端时,浏览器发送到服务器的下一个请求也会发送这个先前保存的 cookie,这将设置 $_COOKIE super 全局。

如果你想保存对cookie服务器端所做的更改,你可以创建一个类来存储原始cookie,然后通过类的cookie更改方法在更改cookie时修改它们,然后使用相同的类来检索任何 cookie 数据,或者您可以在使用 PHP 设置实际 cookie 的同时自行修改 $_COOKIE super 全局变量。

关于php - 通过 functions.php 的 Wordpress Cookie 在页面重新加载之前不会读取 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9119922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com