联系电话:0755-27515592
最新动态:

PHP教程

你的位置: 首页>>智慧亿恩>>PHP教程

magic_quotes_gpc对cookie序列化的影响

点击数:16512015-07-31 10:45:38 来源: 外贸网站建设,深圳外贸网站建设,深圳网站建设,外贸商城网站制作-亿恩科技

新闻摘要:1.问题:项目数据需要序列化保存在cookie中,然后再获得cookie的数据反序列,获得原数据 PHP Code 复制内容到剪贴板 $a [0]= array ( key = 哈逻 ); $a [1]= array ( key = 哈逻 ); $jsona =json_encode( $a )

1.问题:项目数据需要序列化保存在cookie中,然后再获得cookie的数据反序列,获得原数据

PHP Code复制内容到剪贴板
  1. $a[0] = array("key"=>"哈  逻");  
  2. $a[1] = array("key"=>"哈 逻");  
  3. $jsona = json_encode($a);  
  4. setcookie("testcookie","");  
  5. setcookie("testcookie",$jsona);  
  6. var_dump($jsona,true); //正常取值  
  7. var_dump(json_decode($_COOKIE['testcookie'],true)); //取不到值  


在没有经过cookie赋值时,正常反序列化。经过cookie之后,取到值为空

2.分析:

PHP Code复制内容到剪贴板
  1. $a[0] = array("key"=>"哈  逻");  
  2. $a[1] = array("key"=>"哈 逻");  
  3. $jsona = json_encode($a);  
  4. var_dump($jsona); //string(50) "[{"key":"\u54c8 \u903b"},{"key":"\u54c8 \u903b"}]"  
  5. setcookie("testcookie","");  
  6. setcookie("testcookie",$jsona);  
  7. var_dump($_COOKIE['testcookie']); // string(62) "[{\"key\":\"\\u54c8 \\u903b\"},{\"key\":\"\\u54c8 \\u903b\"}]"  
  8. var_dump(json_decode($_COOKIE['testcookie'],true));  


对比了一下数据,经过cookie处理后多了几个//
解决方法:

PHP Code复制内容到剪贴板
  1. var_dump(json_decode(stripslashes($_COOKIE['testcookie']),true));  
  2. var_dump(json_decode(str_replace("\\","",$_COOKIE['testcookie']),true));  



总结:magic_quotes_gpc在开启的情况下,会影响通过get|post|cookies获得的数据.所以我们在get|post|cookies处理数据的时候,
首先判断magic_quotes_gpc开启情况
1>在开启情况下,处理数据需要stripslashes
2>在没有开启情况下,接受数据先addslashes,处理数据stripslashes

【责任编辑:(Top) 返回页面顶端
贴心
全国7×24小时客服热线
安全
病毒杀除率高于99%
稳定
网站可用性高于99.9%
实力
服务68家上市企业及集团公司
亿恩科技手机站
关注亿恩科技微信

亿恩科技—企业信息化一站式服务专家


Copyright © 2008- 深圳市亿恩科技有限公司版权所有 粤ICP备15056041号

联系我们 | 常见问题 | 在线留言 | 支付方式 | 软件开发 | 我的观点 | 资质荣誉 | 服务流程