只想知道如何删除PHP上的cookie。
以下是$_COOKIES
的打印结果。
所以,我有一个购物车阵列,它存储了建议的信息,在我的cart.php文件中,我有一个按钮来删除议程或选项。
Array
(
[cart] => Array
(
[90406_cart] => Array
(
[id_agenda] => 7
[qty_agenda] => 3
[options] => Array
(
[28962_option] => Array
(
[id_option] => 3
[qty_option] => 1
)
[52058_option] => Array
(
[id_option] => 4
[qty_option] => 1
)
[70617_option] => Array
(
[id_option] => 5
[qty_option] => 1
)
)
)
[86953_cart] => Array
(
[id_agenda] => 17
[qty_agenda] => 1
)
)
)
问题是如何从父级删除或取消设置此cookie到阵列的子级别(假设我想删除带有密钥的议程:90406_cart
或52058_option
)?
Cookie是使用Codeigniter
$id_agenda = 1;
$qty_agenda = 20;
$option = array(1,2,3);
$qty_option = array(3,3,3);
$num = rand(10000,99999).'_cart';
$this->input->set_cookie('cart['.$num.'][id_agenda]',$id_agenda, 86400);
$this->input->set_cookie('cart['.$num.'][qty_agenda]',$qty_agenda, 86400);
for($i = 0; $i<count($id_option);$i++){
$num2 = rand(10000,99999).'_option';
$this->input->set_cookie('cart['.$num.'][options]['.$num2.'][id_option]',$id_option[$i], 86400);
$this->input->set_cookie('cart['.$num.'][options]['.$num2.'][qty_option]',$qty_option[$i], 86400);
}
答案 0 :(得分:0)
所以在使用chrome中的web开发工具进行实验后,我才意识到cookie存储在一行中,如:
cart[34705_cart][id_agenda] = 43
cart[34705_cart][qty_agenda] = 2
cart[34705_cart][options][12263_option][id_option] = 2
cart[34705_cart][options][12263_option][qty_option] = 4
这意味着它为每个数据存储在一行中,然后PHP将其全部读作一个类型为Array
的变量,实际上不可能仅使用类似{{的数组键来删除/取消设置cookie 1}}或unset($_COOKIES['cart']['90406_cart'])
。我提出的解决方案是这样的:
$this->input->set_cookie('34705_cart')
我希望这可以帮助那些可能会像这样摔倒的人。