mosquito
Новичок
Почему не удаляется куки?
Я делаю корзину товаров на куках.
Корзина сделана так:
$_COOKIE[name[]] - имена товаров
$_COOKIE[price[]] - цены товаров
чтобы занести товар в корзину делаю так: пересылаю формой два значения: товар и цену
с этим все нормально
а вот с удалением конкретного товара из корзины проблемы:
возле каждого товара есть ссылка "удалить из корзины" в виде:
url?action=del&id='номер элемента в массиве $_COOKIE[name[]]'
После удаления какого-либо элемента из корзины получается, что элемент не удалился, вернее удалились только значения
Показываю корзину так:
Я делаю корзину товаров на куках.
Корзина сделана так:
$_COOKIE[name[]] - имена товаров
$_COOKIE[price[]] - цены товаров
чтобы занести товар в корзину делаю так: пересылаю формой два значения: товар и цену
PHP:
$name = $_POST['name'];
$price = $_POST['price'];
// Проверка на наличие счетчика
if (!isset($_COOKIE['counter']))
{
setcookie("counter" , 0);
}
$counter = $_COOKIE['counter'];
setcookie("name[$counter]", $name, time()+3600*48);
setcookie("price[$counter]", $price, time()+3600*48);
// инкремент счетчика
++$counter;
setcookie("counter", $counter, time()+3600*48);
а вот с удалением конкретного товара из корзины проблемы:
возле каждого товара есть ссылка "удалить из корзины" в виде:
url?action=del&id='номер элемента в массиве $_COOKIE[name[]]'
PHP:
if (isset($_GET['action']) AND isset($_GET['id']) AND $_GET['action'] == 'del')
{
$counter= $_COOKIE['counter'];
$num = $_GET['id'];
setcookie("$name[$num]", "", time() - 3600*48);
setcookie("$price[$num]", "", time() - 3600*48);
--$counter;
setcookie("counter", $counter);
}
Показываю корзину так:
PHP:
if (isset($_GET['action']) AND $_GET['action'] == 'show')
{
if (isset($_COOKIE['name']))
$names = $_COOKIE['name'];
if (isset($_COOKIE['price']))
$prices = $_COOKIE['price'];
$counter = $_COOKIE['counter'];
if ($counter != 0)
{
for($y=0; $y<$counter; $y++)
{
echo($names[$y]." ".$prices[$y]." ".<a href=basket.php?action=del&id=".$y.">Удалить из корзины</a>");
}
foreach($prices as $p=>$price)
{
$prices[$p] = intval($price);
}
echo("Товаров в корзине: ".$counter);
echo("Итого: ".array_sum($prices));
}
else
echo("корзина пуста");
}