setcookie() 期望参数 2 是字符串,数组有什么问题?

0 php cookies isset setcookie

问题是什么?

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'])) {}
Run Code Online (Sandbox Code Playgroud)

错误信息:

警告:setcookie() 期望参数 2 是字符串,数组在第 24 行的 /index.php 中给出

Alw*_*nny 5

你收到警告

警告:setcookie() 期望参数 2 是字符串,数组在第 24 行的 /index.php 中给出

因为 PHP 的setcookie()函数接受字符串作为第二个参数。因此,如果您想存储任何数组值,例如,$rov那么您可以使用json_encode($rev);设置 cookie,访问它,您可以使用json_decode($_COOKIE['cookie'],1);

这是使用json_encode()json_decode()Array值设置和获取 cookie 的方法

设置 Cookie

setcookie('cookie', json_encode($rov), time()+3600);
Run Code Online (Sandbox Code Playgroud)

获取 Cookie

$data = json_decode($_COOKIE['cookie'], true);
Run Code Online (Sandbox Code Playgroud)