【发布时间】:2011-12-02 14:48:03
【问题描述】:
我的 PHP 代码序列化,但没有反序列化,可能是什么问题?
$serializedColumns = serialize($columnNames);
我有以下生成的 html,我将序列化的字符串存储到隐藏字段中:
<input id="columns_hidden" name="columns" type="hidden" value="a:3:{i:0;s:8:"Username";i:1;s:8:"Password";i:2;s:11:"AccessLevel";}">
请求被发送到“AddData.php”,我的反序列化代码如下:
$columns = unserialize($_REQUEST['columns']);
当我在$columns 上调用print_r 时,它返回一个空白字符串。
当我在$_REQUEST['columns'] 上调用print_r 时,它返回:
a:3:{i:0;s:8:\"Username\";i:1;s:8:\"Password\";i:2;s:11:\"AccessLevel\";}
【问题讨论】:
-
print_r($_REQUEST['columns']);在说什么? -
{前面开头的:不见了:a:3{是错的,必须是a:3:{,但是你不应该使用serialize来做你的工作。 Explanation and alternatives. -
这是一个极端的安全漏洞。
标签: php forms serialization