Не удается обновить Cookie с помощью php - PullRequest
0 голосов
/ 24 июня 2018

Я использую cookie для сохранения массива PHP (0 => 0, 1 => 0, ......, 99 => 0) и кодирую массив в JSON, чтобы иметь возможность сохранятьпроблема заключается в том, что когда я декодирую JSON, чтобы извлечь массив и изменить значение поля, я не могу обновить cookie и не знаю, почему.

Это код, который яиспользуйте для создания куки:

$carrito=array(0=>0);
            $sql = "SELECT ID FROM productos";
            $ids = $conn->query($sql);
            if ($ids->num_rows > 0){
                while($row = $ids->fetch_assoc()) {
                    array_push($carrito, 0);
                }
            } else {
                echo "0 results";
            }
            $conn->close();//cerramos la conexión
            setcookie("carrito", json_encode($carrito), time()+(86400),"/");

И вот код, который я использую для декодирования JSON и прохождения через arrat для его изменения:

 if(isset($_POST["id"])){
            $idProducto=$_POST["id"];
            $data = json_decode(stripslashes($_COOKIE["carrito"]),true);
            print_r($data);
            echo "</br>".$idProducto."</br>";
            foreach($data as $id => $cantidad){
                if($id == $idProducto){
                    $cantidad++;
                }
            }
            print_r($data);
            setcookie("carrito", json_encode($data), time()+(86400),"/");
        }

Проблема в том, что после декодированияJSON, когда я пытаюсь пройти по массиву, не распознает строку $ data как $ id => $ cantidad.

Это то, что я получаю, когда печатаю_д ($ data):

Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 0 [5] => 0 [6] => 0 [7] => 0 [8] => 0 [9] => 0 [10] => 0 [11] => 0 [12] => 0 [13] => 0 [14] => 0 [15] => 0 ) 

1 Ответ

0 голосов
/ 24 июня 2018

Уже решил это с помощью:

$data[$idProducto]++;

вместо цикла foreach

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...