对象序列化传至后台, php 无法还原对象

php中文网
发布: 2016-06-23 13:49:44
原创
1000人浏览过

前台页面把一个对象序列化以后提交到后台 用json_decode 还原不出对象了

function build_exitbox (){ // builid 构建编辑用的弹出窗口	var obj1={title:"合同资料",						fields:[							{display:"id",fields_name:"hetong_id",input_type:"text", disabled:true},							{display:"合同字号",fields_name:"hetong_zihao",input_type:"text", disabled:true},							{display:"备案号",fields_name:"beianhao",input_type:"text", disabled:false},							{display:"签约日期",fields_name:"qianyue_date",input_type:"text",class:"Wdate", disabled:false},							{display:"总加工费",fields_name:"t_jiagongfei",input_type:"text", disabled:false},							{display:"总出口值",fields_name:"t_chukou_zhi",input_type:"text", disabled:false},							{display:"总原料值",fields_name:"t_yuanliao",input_type:"text", disabled:false}],		};	var field_json=JSON.stringify(obj1);			open_pop();		$("#light").html(loading_html_str);		$("#light").load("bulid_exitbox.php",{cur_table_name:cur_table_name,cur_act_no:cur_act_type,cur_rec_id:cur_rec_id,field_obj:field_json}, function(){		});}
登录后复制


后台代码 "bulid_exitbox.php",
<?echo $field_obj;var_dump(json_decode($field_obj,true));?>
登录后复制


结果 后台接受的字串为
{\"title\":\"合同资料\",\"fields\":[{\"display\":\"id\",\"fields_name\":\"hetong_id\",\"input_type\":\"text\",\"disabled\":true},{\"display\":\"合同字号\",\"fields_name\":\"hetong_zihao\",\"input_type\":\"text\",\"disabled\":true},{\"display\":\"备案号\",\"fields_name\":\"beianhao\",\"input_type\":\"text\",\"disabled\":false},{\"display\":\"签约日期\",\"fields_name\":\"qianyue_date\",\"input_type\":\"text\",\"class\":\"Wdate\",\"disabled\":false},{\"display\":\"总加工费\",\"fields_name\":\"t_jiagongfei\",\"input_type\":\"text\",\"disabled\":false},{\"display\":\"总出口值\",\"fields_name\":\"t_chukou_zhi\",\"input_type\":\"text\",\"disabled\":false},{\"display\":\"总原料值\",\"fields_name\":\"t_yuanliao\",\"input_type\":\"text\",\"disabled\":false}]}
登录后复制


var_dump(json_decode($field_obj))  输出为null

北极象沉浸式AI翻译
北极象沉浸式AI翻译

免费的北极象沉浸式AI翻译 - 带您走进沉浸式AI的双语对照体验

北极象沉浸式AI翻译 0
查看详情 北极象沉浸式AI翻译

回复讨论(解决方案)

测试了一下, 前台生成的  field_json 的值是这样的

{"title":"合同资料","fields":[{"display":"id","fields_name":"hetong_id","input_type":"text","disabled":true},{"display":"合同字号","fields_name":"hetong_zihao","input_type":"text","disabled":true},{"display":"备案号","fields_name":"beianhao","input_type":"text","disabled":false},{"display":"签约日期","fields_name":"qianyue_date","input_type":"text","class":"Wdate","disabled":false},{"display":"总加工费","fields_name":"t_jiagongfei","input_type":"text","disabled":false},{"display":"总出口值","fields_name":"t_chukou_zhi","input_type":"text","disabled":false},{"display":"总原料值","fields_name":"t_yuanliao","input_type":"text","disabled":false}]}

后台取得的值 是这样的
{\"title\":\"合同资料\",\"fields\":[{\"display\":\"id\",\"fields_name\":\"hetong_id\",\"input_type\":\"text\",\"disabled\":true},{\"display\":\"合同字号\",\"fields_name\":\"hetong_zihao\",\"input_type\":\"text\",\"disabled\":true},{\"display\":\"备案号\",\"fields_name\":\"beianhao\",\"input_type\":\"text\",\"disabled\":false},{\"display\":\"签约日期\",\"fields_name\":\"qianyue_date\",\"input_type\":\"text\",\"class\":\"Wdate\",\"disabled\":false},{\"display\":\"总加工费\",\"fields_name\":\"t_jiagongfei\",\"input_type\":\"text\",\"disabled\":false},{\"display\":\"总出口值\",\"fields_name\":\"t_chukou_zhi\",\"input_type\":\"text\",\"disabled\":false},{\"display\":\"总原料值\",\"fields_name\":\"t_yuanliao\",\"input_type\":\"text\",\"disabled\":false}]}

为什么后台 都加上了"\"
如果没有"\" 是可以还原对象的
怎样去掉"\"

php配置中开启了magic quotes gpc,所有get、post和cookie都会自动addslashes,输出时需要stripslashes解掉
但是你别在存数据库之前解,这就是为了防注入的

入库前如果配置文件,开启自动转义开关,那么就会在内容里加上“\”进行转义,入库之后就会看到有“\”。
所以读取数据的时候需要反转移stripslashes

加base64_encode,服?器再base64_decode可解???。
不?magic quotes gpc建??,新版本的php默?是?的。

你这是自找麻烦!
只需 field_json = obj1;
php $_POST 自然就保有全部提交数据

你这是自找麻烦!
只需 field_json = obj1;
php $_POST 自然就保有全部提交数据


服务器段如何提取  

我用echo $field_obj;  返回的是null

print_r($_POST);
什么都看到了

果然有效!多谢指点 

相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号