【发布时间】:2014-03-15 15:04:10
【问题描述】:
我已将许多隐藏表单输入设置为具有序列化数组的值,如下例所示:
echo "<input type=\"hidden\" name=\"attName\" value=\"".htmlentities(serialize($attributeName))."\" />";
接收表单post成功的脚本获取序列化数组。如果我打印出来:
echo "<p>".$_POST['attType']."</p>";
打印出来:
a:4:{i:0;s:13:\"序列号\";i:1;s:5:\"works\";i:2;s:3:\"Gen\";i: 3;s:4:\"测试\";}
这是有效的,而且似乎工作正常。
但是,如果我尝试反序列化它,似乎什么也没有发生。这段代码:
$attName=$_POST['attName'];
echo $attName;
$attName=unserialize($attName);
echo "Array: ";
print_r($attName);
打印出来:
a:4:{i:0;s:13:\"序列号\";i:1;s:5:\"works\";i:2;s:3:\"Gen\";i: 3;s:4:\"test\";}数组:
由于某种原因,php 无法对其进行反序列化。我尝试使用表单对第一页上的数组进行序列化和反序列化以尝试查找错误,但效果很好。
最奇怪的是,这个问题只发生在我的服务器上,而不发生在我的 MAMP 测试环境中。
非常感谢任何帮助。
【问题讨论】:
标签: php arrays serialization