Cookie设置与旧值

时间:2016-08-10 05:09:16

标签: php variables cookies

我正在使用代码:

IF (isset($_GET['s']))
{
    $sessie = $_GET['s'];
}
ELSE
{
    $sessie = 'I';
}
$cookie = 'JaiDje_Page';
setcookie($cookie, $sessie);
$WDpag = $_COOKIE[$cookie];
echo $WDpag."-".$_COOKIE[$cookie]."-".$sessie."<br>";

在$ sessie(菜单选择)的新值之后,奇怪的是第一次加载页面时,$ WDpag和$ _COOKIE [$ cookie]给出旧值,$ sessie给出新值。 页面刷新后,所有三个值都相同。

所以在菜单中选择之后,以下是回声(例如)

I-I-Z

比页面刷新(F5)

之后

Z-Z-Z

似乎cookie是我菜单中选择的一步。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

页面加载时设置了

$_COOKIE,因此如果您想立即访问,可以直接设置$_COOKIE['variable']

所以这样做

//setcookie($cookie, $sessie);
$_COOKIE[$cookie] = $sessie;

答案 1 :(得分:0)

原因是$_COOKIE[$cookie]返回浏览器发送的当前cookie。而setcookie会向浏览器发送Cookie。当您检索值$_COOKIE[$cookie]时,cookie尚未设置,因为它将在请求页面后设置。

尝试将其放在setcookie之后:

if($_COOKIE[$cookie] != $sessie) header("location: pageName.php");