首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >序列化的PHP对象不通过POST传递。

序列化的PHP对象不通过POST传递。
EN

Stack Overflow用户
提问于 2014-06-09 13:40:18
回答 2查看 355关注 0票数 1
代码语言:javascript
运行
复制
     $citation = new Citation();
                    $citation->user_id  =   $result['pmid'];
                    $citation->pmid      =  $result['volume'];
                    $citation->volume    =  $result['volume'];      
                    $citation->issue     =  $result['issue'];       
                    $citation->year      =  $result['year'];        
                    $citation->month     =  $result['month'];           
                    $citation->pages     =  $result['pages'];           
                    $citation->issn      =  $result['issn'];        
                    $citation->journal       =  $result['journal'];     
                    $citation->journalabbrev =  $result['journalabbrev'];   
                    $citation->title          = $result['title'];

                    $string_data = serialize($citation);

HTML

代码语言:javascript
运行
复制
   <input type="checkbox" name="citation" value="<?php echo $string_data; ?>">

POST前的$string_data输出=

O:8:"Citation":16:{s:7:"user_id";s:7:"8046837";s:4:"pmid";s:2:"52";s:6:"volume";s:2:"52";s:5:"issue";s:1:"6";s:4:"year";s:4:"1994";s:5:"month";s:3:"Jun";s:5:"pages";s:6:"1535-8";s:4:"issn";s:9:"0047-1852";s:7:"journal";s:51:"Nihon rinsho.日本临床医学杂志;s:13:“Nippon Rinsho”;s:5:“title”;s:46:“sarcoidosis.";s:8:"abstract";N;s:11:"affiliation";N;s:7:"authors";N;s:9:"articleid";N;s:8:"keywords";N;}中的支气管镜分类”

而在可以不序列化..。

代码语言:javascript
运行
复制
                    $new = unserialize($string_data);

                    print_r($new);

给予..。

引文对象( user_id => 8046837 pmid => 52卷,=> 52卷,=> 6 a,=> 1994月=> Jun pages => 1535-8 issn => 0047-1852期刊=> Nihon )。日本临床医学杂志,简称=>日本Rinsho,=>支气管镜在结节病分类。摘要=>从属关系=> authors => articleid =>关键词=> )

但是,当我使用复选框向另一个页面投递时,然后

代码语言:javascript
运行
复制
    echo $_POST['citation'];

我得到了

数组( => O:8:)

我在Stack中搜索了一个解决方案以及PHP文档,但都没有成功。POST操作是否以某种方式更改序列化数据?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-09 14:53:37

问题解决了。

第一:

代码语言:javascript
运行
复制
      $string_data = serialize($citation);

      $string_data = base64_encode($string_data);

然后使用POST发送$string_data

然后

代码语言:javascript
运行
复制
      $new_object = unserialize(base64_decode($citation));

在另一边。

票数 0
EN

Stack Overflow用户

发布于 2014-06-09 14:22:49

我认为您应该使用json_encode和json_decode函数

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24121539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档