出什么问题了?
while($rov = mysql_fetch_array($result)) {
$expire = time()+(60*60*24*30);
setcookie('cookie',$rov,$expire);
$userID = $rov;
}
if(isset($_COOKIE['cookie'])) {
$userID = $_COOKIE['ID'];
}
if(isset($_COOKIE['cookie'])) {}
错误消息:
警告:setcookie()期望参数2为字符串,在第24行的/index.php中给出的数组
答案 0 :(得分:3)
您收到警告
警告:setcookie()期望参数2为字符串,数组为 /index.php,第24行
因为PHP的setcookie()函数接受 string 作为第二个参数。因此,如果要存储任何数组值,例如$rov
,则可以使用json_encode($rev);
设置cookie,要访问它,可以使用json_decode($_COOKIE['cookie'],1);
这是使用json_encode()和json_decode()
为 Array 值设置和获取Cookie的方法设置Cookie
setcookie('cookie', json_encode($rov), time()+3600);
获取Cookie
$data = json_decode($_COOKIE['cookie'], true);
答案 1 :(得分:0)
setCookie()希望将字符串作为值,但 $ rov 变量包含导致错误的数组。
您可以使用@Curious_mind建议的 json_encode / json_decode 解决方案,也可以采用 serialize / unserialize 方法。
setcookie('cookie', serialize($rov), time()+3600);
Then unserialize data:
$data = unserialize($_COOKIE['cookie'], ["allowed_classes" => false]);