【发布时间】:2012-07-13 22:10:14
【问题描述】:
我正在尝试设置一个基本的 PHP cookie,它会记住 a 使用的颜色主题。然而,当我对其进行测试时,在设置和颜色主题的显示之间存在一次刷新延迟。
澄清一下:我有一个允许用户选择颜色的选择表单。然后,有一个应用按钮。一旦选择了应用按钮,页面应该会自动设置 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>';
其中 $_POST["theme"] 是选择表单名称。非常感谢!这个:Cookie only displayed on refresh? 是我在说的,但是使用 PHP,而不是 C#
编辑:感谢所有回复!我设法通过将背景颜色设置为用户在设置 cookie 时选择的任何内容来解决此问题。因此,当用户最初选择颜色时,并不是 cookie 设置了背景。这是另一个功能。感觉有点便宜,但是很管用!
【问题讨论】:
-
@PeeHaa 他写道,这可能是重复的,但使用 C# 而不是 PHP :)
-
而且不可能重复。他想知道当他点击应用按钮时如何设置主题的解决方法。
-
一个简单的解决方法:使用 setcookie 设置 cookie 并同时设置超全局 $_COOKIE;这样它就可以在同一个请求中使用。
-
是的,这就是我们想要做的。不过,我想我知道一种方法。
-
真的很简单,如果你这样做 setcookie("TestCookie", $color, time()+60*60*24);你可以做 $_COOKIE['TestCookie'] = $color;紧随其后,它将按您的预期工作。