$apply_id=25;
if(isset($_COOKIE['apply'])){$apply_cookie=$_COOKIE['apply'];}
else{$apply_cookie=serialize(array());}
$apply_cookie=unserialize($apply_cookie);
//HAVE COOKIE
if(in_array($apply_id, $apply_cookie)==TRUE){echo "COOKIE=TRUE<BR>"; print_r($apply_cookie);}
else{
//NO COOKIE,DB HAVE RECORDED
$db=FALSE;//I don't want to query, so just set TRUE FALSE
if($db==TRUE){
echo "COOKIE=FALSE; DB=TRUE";
$apply_cookie[]=$apply_id;
$apply_cookie=serialize($apply_cookie);
setcookie("apply", $apply_cookie);
}
else{
//NO COOKIE,NO RECORDED
echo "COOKIE=FALSE, DB=FALSE";
$apply_cookie[]=$apply_id;
$apply_cookie=serialize($apply_cookie);
setcookie("apply", $apply_cookie);
//process the apply query...
}
}
我已经为我的申请按钮设置了一个cookie,如果用户已申请,它将弹出消息状态再次查询,如果没有cookie,它将检查数据库并更新cookie。
我将数组(反序列化)存储到 cookie 中,并使用 in_array 进行检查。
但是,如果用户尝试更改我的 cookie,反序列化会出错。
有什么方法可以设置 -if unserialize=FALSE apply_cookie=array();
类似的东西