PHP读取使用setcookie()创建的cookie

lee*_*ers 6 php cookies

手册:

在下一次加载可以看到cookie的页面之前,Cookie不会显示

这意味着在下一页加载之前setcookie无法访问创建的cookie $_COOKIE.有没有解决这个问题?有没有办法检测setcookiePHP中创建的cookie 而无需重新加载?

我无法修改setcookie当前代码库中调用附近的代码.所以这样的解决方案不起作用:

setcookie('test', 'my test value');
$_COOKIE['test'] = 'my test value';
Run Code Online (Sandbox Code Playgroud)

Mar*_*c B 7

_COOKIES超全局是作为脚本初始化的一部分创建的,然后由PHP单独保留.因此,您稍后在脚本中创建的任何cookie都不会神奇地出现在数组中,因为它们在初始化时不存在.

您可以覆盖内置的setcookie功能runkit_function_redefine(),但如果您不是非常小心,您可以打开自己,直到受伤的世界.


Mat*_*son 6

您可以使用会话,它将立即可用,并将限制存储在cookie中的数据量,因为它只会存储会话ID.您也可以使用复杂数据.

<?php
$_SESSION['my_var'] = 'something';
$_SESSION['another_var'] = array(1, 2, 3);

$my_var = $_SESSION['my_var'];
echo $my_var;
?>
Run Code Online (Sandbox Code Playgroud)