php5,cookie中不能存数组吗?$arr = array(1,2,3);setcookie( "a", $arr );提示错误,手册上指示的也确实是string name [, string value 先用serialize序列化数组,再存入COOKIE ,读出来时用unserialize得到原来的数组 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <?$arr = array(1,2,3);setcookie( "a[0]", $arr[0] );setcookie( "a[1]", $arr[1] );setcookie( "a[2]", $arr[2] );?>这是php设定多键值cookie的方法。 <?//存入$arr = array(1,2,3);$arr_str = serialize($arr); setcookie( "a",$arr_str );//取出$arr_str = $_COOKIE['a'];$arr = unserialize($arr_str); ?>这样的话,无论你的$arr是多少维,怎么变代码都是这样,这不是更好吗? <?//存入$arr = array(1,2,3);$arr_str = serialize($arr); setcookie( "a",$arr_str );//取出$arr_str = $_COOKIE['a'];$arr = unserialize($arr_str); ?>这样的话,无论你的$arr是多少维,怎么变代码都是这样,这不是更好吗? -------------------------------------------------------------我也认为这种方法比较好。不限维数 手册上有写,不建议在cookie里写数组。因为cookie可以伪造。而在unserialize时可能会被伪造的数据攻击。 手册上有写,不建议在cookie里写数组。因为cookie可以伪造。而在unserialize时可能会被伪造的数据攻击。----------------------------------------------那怎么在cookie里存维数比较多的数组? unserialize的问题应该补过了吧……都5了。估计用也没问题吧……我一般都是简单的数据记录才用cookie,用间隔符隔开,没试过复杂的数组记在cookie的。 主要是单个cookie有4k长度限制。而apache文件头限制一般小于8k。太复杂的数据还是得数据库解决,无奈啊。 http://www.bluedon.com/bluedo621/search/newsdisplay2.asp?id=4146&sort=2php4.10 和php5.03后的版本不存在这个安全问题 <?phpsession_start();session_register(data); $data=array(1,2,3,4,array(1,2,3,4)); $test_date = $_SESSION['data'];print_r($test_date);?> 刚发现的一个办法,呵呵,可以是先注册后赋值。 直接这样就可以了<?phpsession_start();$_SESSION['data']=array(1,2,3,4,array(1,2,3,4)); print_r($_SESSION['data']);?> 跟踪会话Session是最佳选择 cookie就是一串字符串,不认识数组这种东西。可以google一下cookie的标准定义。但是PHP可以把同名且后面以[]结尾的cookie解析为数组。 经典问题如何经典解决PHP FOR LINUX? 关于 PHP中fpen的 问题 想做一个动态创建表单的程序,请高手给个思路。 用localhost连接数据库可以成功,而用IP连接就不行,为什么? 下拉弹出菜单的问题,解决后我会再加一百分!!谢谢 图形处理,乱码问题。 求助!!!!!!! 大家说说用php+mysql做一个网站生成系统的实现方法 安装一个用php做的系统后,为什么啥也没显示?!急死人了 帮忙写一个判断变量长度的函数,谢谢! 这个函数是干什么用的? 新人 关于递归
$arr = array(1,2,3);
setcookie( "a[0]", $arr[0] );
setcookie( "a[1]", $arr[1] );
setcookie( "a[2]", $arr[2] );
?>
这是php设定多键值cookie的方法。
//存入
$arr = array(1,2,3);
$arr_str = serialize($arr);
setcookie( "a",$arr_str );//取出
$arr_str = $_COOKIE['a'];
$arr = unserialize($arr_str); ?>
这样的话,无论你的$arr是多少维,怎么变代码都是这样,这不是更好吗?
//存入
$arr = array(1,2,3);
$arr_str = serialize($arr);
setcookie( "a",$arr_str );//取出
$arr_str = $_COOKIE['a'];
$arr = unserialize($arr_str); ?>
这样的话,无论你的$arr是多少维,怎么变代码都是这样,这不是更好吗?
-------------------------------------------------------------我也认为这种方法比较好。不限维数
那怎么在cookie里存维数比较多的数组?
我一般都是简单的数据记录才用cookie,用间隔符隔开,没试过复杂的数组记在cookie的。
php4.10 和php5.03后的版本不存在这个安全问题
session_start();
session_register(data);
$data=array(1,2,3,4,array(1,2,3,4)); $test_date = $_SESSION['data'];
print_r($test_date);
?>
刚发现的一个办法,呵呵,可以是先注册后赋值。
session_start();
$_SESSION['data']=array(1,2,3,4,array(1,2,3,4)); print_r($_SESSION['data']);
?> 跟踪会话Session是最佳选择
但是PHP可以把同名且后面以[]结尾的cookie解析为数组。