Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过在php中添加多个值来修改现有cookie_Php_Arrays_Json_Cookies - Fatal编程技术网

如何通过在php中添加多个值来修改现有cookie

如何通过在php中添加多个值来修改现有cookie,php,arrays,json,cookies,Php,Arrays,Json,Cookies,我想以cookie的形式将一些数据存储到客户端设备。这些数据由数字组成。当客户机浏览特定页面时,我希望该页码以cookie的形式存储在客户机的设备上。当客户端转到另一个页面时,我希望将新页面的值以及上一个页面的现有值推入。我想把这些都存储在一个数组中,这样我的网站就可以在客户下次访问时使用它来显示合适的页面建议。下面是我完成的代码。它不能正常工作。提前谢谢 <?php $name ="namehere"; if (!isset($_COOKIE['namehere'])) { $n

我想以cookie的形式将一些数据存储到客户端设备。这些数据由数字组成。当客户机浏览特定页面时,我希望该页码以cookie的形式存储在客户机的设备上。当客户端转到另一个页面时,我希望将新页面的值以及上一个页面的现有值推入。我想把这些都存储在一个数组中,这样我的网站就可以在客户下次访问时使用它来显示合适的页面建议。下面是我完成的代码。它不能正常工作。提前谢谢

<?php
$name ="namehere";
if (!isset($_COOKIE['namehere'])) {
    $name ="namehere";
    $myArr = array("1", "4", "6", "8","5","9");
    $count = array_count_values($myArr);
    $myJSON = json_encode($myArr);

    setcookie('namehere', $myJSON, time() + (60*60*24*1), "/"); // 86400 = 1 day
    echo "Cookie named $name is not set!";
}
else {
    echo "Cookie named $name is set!<br>";
    $cookieloaded = $_COOKIE['namehere'];
    $myjson = json_decode($cookieloaded);
    $pushin = array_push($myjson,"11");

    $mynewJSON = json_encode($pushin);

    setcookie('namehere', $mynewJSON, time() + (60*60*24*1), "/"); // 86400 = 1 day
    echo $_COOKIE['namehere'];
}
?>

我检查了您的代码,发现函数有错误。尝试下一个:

if (!isset($_COOKIE['namehere'])) {
    $name ="namehere";
    $myArr = array("1", "4", "6", "8","5","9");
    $count = array_count_values($myArr);
    $myJSON = json_encode($myArr);

    setcookie('namehere', $myJSON, time() + (60*60*24*1), "/"); // 86400 = 1 day
    echo "Cookie named $name is not set!";
}
else {
    echo "Cookie named $name is set!<br>";

    $cookieloaded = $_COOKIE['namehere'];
    $myjson = json_decode($cookieloaded,true);
    $myjson[] = "11";

    $mynewJSON = json_encode($myjson);

    setcookie('namehere', $mynewJSON, time() + (60*60*24*1), "/"); // 86400 = 1 day
    echo $_COOKIE['namehere'];
}


json_decode(json, true) => true to convert json to array
array_push($myjson,"11");  => $myjson is a pointer, replace to $myjson[] = 11;
if(!isset($\u COOKIE['namehere'])){
$name=“namehere”;
$myArr=数组(“1”、“4”、“6”、“8”、“5”、“9”);
$count=数组计数值($myArr);
$myJSON=json_encode($myArr);
setcookie('namehere',$myJSON,time()+(60*60*24*1),“/”;//86400=1天
echo“未设置名为$name的Cookie!”;
}
否则{
echo“已设置名为$name的Cookie!
”; $cookieloaded=$_COOKIE['namehere']; $myjson=json_decode($cookieloated,true); $myjson[]=“11”; $mynewJSON=json_encode($myjson); setcookie('namehere',$mynewJSON,time()+(60*60*24*1),“/”;//86400=1天 echo$_COOKIE['namehere']; } json_decode(json,true)=>true将json转换为数组 数组推送($myjson,“11”);=>$myjson是一个指针,替换为$myjson[]=11;

我模拟了几次,每次测试代码都会在cookie中添加11个。

非常感谢Maximiliano先生,您的建议很有效。谢谢你给我宝贵的时间,从过去两天开始我一直在努力解决这个问题,现在你的建议解决了。谢谢。