PHP cookie 有一次刷新延迟

Par*_*ase 2 php cookies

可能重复:
Cookie 仅在刷新时显示?

我正在尝试设置一个基本的 PHP cookie,它将记住使用的颜色主题。然而,当我测试它时,在设置和颜色主题的显示之间存在一次刷新延迟。

澄清一下:我有一个允许用户选择颜色的选择表单。然后,有一个应用按钮。选择应用按钮后,页面应自动设置 cookie 并显示颜色。然而,当应用按钮被按下时,只有 cookie 被设置并且主题不会显示,直到用户点击刷新按钮。关于如何解决这个问题的任何想法?

$help = $_POST["theme"];
    $color = "#" . $help;
    setcookie("TestCookie", $color, time()+60*60*24);
    $recolor = $_COOKIE["TestCookie"];
    echo '<style type="text/css"> body { background: '.$recolor.' } </style>';
Run Code Online (Sandbox Code Playgroud)

其中 $_POST["theme"] 是选择表单名称。非常感谢!this:Cookie 仅在刷新时显示?就是我在谈论的,但使用 PHP,而不是 C#

编辑:感谢所有回复!我设法通过在设置 cookie 的同时将背景颜色设置为用户选择的任何颜色来解决此问题。所以当用户最初选择颜色时,它不是设置背景的 cookie。这是另一个功能。感觉有点便宜,但它有效!

mis*_*shu 5

$_COOKIE 超全局变量在您请求该页面时具有可用的 cookie,这就是为什么您永远不会看到您刚刚保存的值

http://php.net/set_cookie的手册页上,您可以看到:

一旦设置了 cookie,就可以在下一页加载时使用 $_COOKIE 或 $HTTP_COOKIE_VARS 数组访问它们。

  • 他们可能通过 javascript 设置 cookie..或者如果您确定它是仅 php 的,他们可能会在设置 cookie 时在 $_COOKIE 超全局中添加值 (2认同)