[英]$_POST doesn't work for PHP post. ISSET reports that no such value was forwared via post method?
[英]Serialized PHP Object not passing via POST.
$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
<input type="checkbox" name="citation" value="<?php echo $string_data; ?>">
POST前$ string_data的输出=
○:8: “引文”:16:{S:7: “USER_ID”; S:7: “8046837”; S:4: “PMID”; S:2: “52”; S:6: “音量” S:2: “52”; S:5: “问题”; S:1: “6”; S:4: “年”; S:4: “1994”; S:5: “月”; S :3: “君”; S:5: “页”; S:6: “1535-8”; S:4: “ISSN”; S:9: “0047-1852”; S:7: “期刊” ; s:51:“ Nihon rinsho。日本临床医学杂志”; s:13:“ journalabbrev”; s:13:“ Nippon Rinsho”; s:5:“ title”; s:46:“ [支气管镜分类结节病] “; S:8:” 抽象 “; N; S:11:” 联系 “; N; S:7:” 作者 “; N; S:9:” 条款ArticleID “; N; S:8:”关键字“; N;}
并且可以反序列化。
$new = unserialize($string_data);
print_r($new);
给....
引用对象([user_id] => 8046837 [pmid] => 52 [volume] => 52 [issue] => 6 [year] => 1994 [month] => Jun [pages] => 1535-8 [issn] => 0047-1852 [新闻] => Nihon rinsho。日本临床医学杂志[journalabbrev] => Nippon Rinsho [标题] => [结节病的支气管镜分类] [摘要] => [隶属关系] => [作者] => [articleid] => [关键字] =>)
但是当我使用复选框发布到另一个页面,然后
echo $_POST['citation'];
我懂了
数组([0] => O:8:)
我已经在Stack上搜索了解决方案以及PHP文档,但均未成功。 POST操作会以某种方式更改序列化数据吗?
我认为您应该使用json_encode和json_decode函数
问题解决了。
第一:
$string_data = serialize($citation);
$string_data = base64_encode($string_data);
然后使用POST发送$ string_data
然后
$new_object = unserialize(base64_decode($citation));
另一方面...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.