Php 在cookie中存储变量的多个值并进行比较

Php 在cookie中存储变量的多个值并进行比较,php,cookies,Php,Cookies,例如,如何使用php在cookie中存储变量的多个值 $id=1,2,4,5 那么如何将存储的值与变量进行比较呢?例如,$new_id=4,我想检查cookie中$id的存储值中是否存在$new_id值。 感谢您的帮助,祝您度过愉快的一天。要使用多值,您可以使用数组,然后存储它,您可以序列化(和取消序列化)数组 创建数组:$array=array(1,2,3,4) 比较:如果(在数组(2,$array)中)回显“是” 要序列化要存储的数据:$store=serialize($array) 10您

例如,如何使用php在cookie中存储变量的多个值 $id=1,2,4,5 那么如何将存储的值与变量进行比较呢?例如,$new_id=4,我想检查cookie中$id的存储值中是否存在$new_id值。
感谢您的帮助,祝您度过愉快的一天。

要使用多值,您可以使用数组,然后存储它,您可以序列化(和取消序列化)数组

创建数组:$array=array(1,2,3,4)

比较:如果(在数组(2,$array)中)回显“是”

要序列化要存储的数据:$store=serialize($array)

10您将能够使用$store数据创建cookie,然后使用unserialize($store)重新转换数组中的数据


要使用多值,您可以使用数组,然后存储它,您可以序列化(和取消序列化)数组

创建数组:$array=array(1,2,3,4)

比较:如果(在数组(2,$array)中)回显“是”

要序列化要存储的数据:$store=serialize($array)

10您将能够使用$store数据创建cookie,然后使用unserialize($store)重新转换数组中的数据


尝试以下代码片段

// do Stuff to retrieve value of $id from cookie.

// explode variable to array
$idArr = explode(',' , $id);

// check existence of new_id in cookie variable.
if(in_array($new_id , $idArr)){

// new_id exist in cookie variable

}
希望这会有所帮助

谢谢


侯赛因。

试试下面的片段

// do Stuff to retrieve value of $id from cookie.

// explode variable to array
$idArr = explode(',' , $id);

// check existence of new_id in cookie variable.
if(in_array($new_id , $idArr)){

// new_id exist in cookie variable

}
希望这会有所帮助

谢谢


Hussain.

您可以在cookie元素中存储任意字符串,因此序列化数组应该可以工作。例如:

// To store:
$ids = array(1, 2, 3, 4);
setcookie('ids', serialize($ids));

// To retrieve:
$serialized = $_COOKIE['ids'];
$ids = unserialize($serialized);
// sanity check: $ids needs to be an array.
assert(is_array($ids));

// Now let's check:
if (in_array(4, $ids)) {
    // Yes, it's here.
}
但有几点需要注意:

  • cookie完全掌握在客户机手中,cookie值永远不应该被信任。对待它们就像对待查询字符串参数或POST数据一样
  • Cookie提供的存储空间非常有限(IIRC,标准为4096字节)

考虑到这些因素,最好将数组存储在
$\u SESSION
中-这将为您提供几乎无限的存储空间,客户端应用程序处理值的唯一方法是通过您的代码。

您可以在cookie元素中存储任意字符串,因此序列化数组应该可以工作。例如:

// To store:
$ids = array(1, 2, 3, 4);
setcookie('ids', serialize($ids));

// To retrieve:
$serialized = $_COOKIE['ids'];
$ids = unserialize($serialized);
// sanity check: $ids needs to be an array.
assert(is_array($ids));

// Now let's check:
if (in_array(4, $ids)) {
    // Yes, it's here.
}
但有几点需要注意:

  • cookie完全掌握在客户机手中,cookie值永远不应该被信任。对待它们就像对待查询字符串参数或POST数据一样
  • Cookie提供的存储空间非常有限(IIRC,标准为4096字节)

考虑到这些因素,最好将数组存储在
$\u SESSION
中-这将为您提供几乎无限的存储空间,客户端应用程序处理值的唯一方法是通过您的代码。

以下是众多解决方案中的一种(语法可能包含错误):

限制:
$id中存储的值不能包含逗号,如果需要存储逗号,请选择另一个分隔符这里是多种解决方案中的一种(语法可能包含错误):

限制:
$id中存储的值不能包含逗号,如果需要在cookie中存储逗号,请选择另一个分隔符,然后将其与cookie中的数组进行比较?你确定这是最佳方法吗?谢谢你的评论。我只想这样做,如果用户选择一些选项,它们可以临时存储。我想到了cookies,因为我认为存储在数据库中可能没用?你能推荐一些最佳的方法吗?这是可以做到的,但是为什么你想在饼干中这样做呢?你确定这是最佳方法吗?谢谢你的评论。我只想这样做,如果用户选择一些选项,它们可以临时存储。我想到了cookies,因为我认为存储在数据库中可能没用?你能建议一些最佳的方法吗?非常感谢你提供的非常有用的信息。你能举一个例子来存储会话吗?而且,序列化是存储大量数据的有效方法吗?(例如1000个ID)只需在脚本开头调用session_start(),然后就可以读/写$_session[]superglobal。仔细阅读文档,它非常简单。序列化是非常有效的,但是为什么每个用户需要存储1000个ID呢?如果你能给我们提供更多的背景资料,看看你想解决什么问题,这可能会很有用。谢谢。我试图让用户选择一些产品并添加到购物车中时,我希望将这些产品id存储在浏览器中,这样即使用户离开页面并且产品在购物车中,它们仍然可以在购物车中。。当然1000只是一个例子。啊,好的。在这种情况下,我建议您将购物车项目存储在数据库表中。从长远来看,更干净、更容易。非常感谢您提供的非常有用的信息。你能举一个例子来存储会话吗?而且,序列化是存储大量数据的有效方法吗?(例如1000个ID)只需在脚本开头调用session_start(),然后就可以读/写$_session[]superglobal。仔细阅读文档,它非常简单。序列化是非常有效的,但是为什么每个用户需要存储1000个ID呢?如果你能给我们提供更多的背景资料,看看你想解决什么问题,这可能会很有用。谢谢。我试图让用户选择一些产品并添加到购物车中时,我希望将这些产品id存储在浏览器中,这样即使用户离开页面并且产品在购物车中,它们仍然可以在购物车中。。当然1000只是一个例子。啊,好的。在这种情况下,我建议您将购物车项目存储在数据库表中。