我正在使用代码:
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是我菜单中选择的一步。
我做错了什么?
答案 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");