/ / Ako môžem aktualizovať pole v súbore cookie? php, pole, cookies

Ako môžem aktualizovať pole v súbore cookie? php, pole, cookies

Ukladám pole košíkov v súbore cookie a posielam ichna stránku nákupného košíka. Kedykoľvek idem na stránku z iného produktu a kliknem na pridať do košíka, nemôže to pridať do poľa, ale zdá sa, že ho prepíše.

$uri = $_SERVER["REQUEST_URI"];
$pin = explode("/", $uri);
$id = $pin[3];

$product = $model->selectById($id, "carpet");
$product = $product->fetch(PDO::FETCH_ASSOC);

$site_url = site_url();
if(!$product){
header("Location: $site_url./404");
}

if(isset($_POST["add"])){
$cart = [];
$cart[$product["id"]] = [];
$cart[$product["id"]]["product_name"] = $product["name"];

setcookie("cart", serialize($cart), time()+3600);
$cart = unserialize($_COOKIE["cart"]);
dd($cart);
}

odpovede:

0 pre odpoveď č. 1

Dostali ste už odpoveď: prepíšeme košík pri každom spustení tohto skriptu. zmeny:

$uri = $_SERVER["REQUEST_URI"];
$pin = explode("/", $uri);
$id = $pin[3];

$product = $model->selectById($id, "carpet");
$product = $product->fetch(PDO::FETCH_ASSOC);

$site_url = site_url();
if(!$product){
header("Location: $site_url./404");
}

if(isset($_POST["add"])){

if ( isset($_COOKIE["cart"]) )
$cart = unserialize($_COOKIE["cart"]); // if cookie is set, get the contents of it
else
$cart = []; // else create an empty cart

// append new product and add to cart
$cart[$product["id"]] = [];
$cart[$product["id"]]["product_name"] = $product["name"];

setcookie("cart", serialize($cart), time()+3600);
$cart = unserialize($_COOKIE["cart"]);
dd($cart);
}

0 pre odpoveď č. 2

2. časť otázky: Ako zvýšiť poradie množstva výrobku:

    ...
// is this product alread in cart?
if ( isset($cart[$product["id"]])
$prod = $cart[$product["id"]]; // then pick it
else
{
// create a new product object
$prod = new stdClass();
// initialze with name and zer quantity
$prod->name = $product["name"];
$prod->quantity = 0;
}

// increment quantity
$prod->quantity ++;

// reassign to array
$cart[$product["id"]] = $prod;

...