2014-10-11 33 views
0

下面是表单中表格的单元格示例。反序列化发布的PHP表单时出现问题

每个表格行有多个相似的单元格,并且表格中可以有多行。

我想将每行发布到不同的页面,然后能够遍历每行。到目前为止,我已经写了这对每个单元:

<td><?php echo "$inkrementering";?><input type="hidden" name="historik[]" value="<?php echo serialize($inkrementering);?>"></td> 
        <?php 

      } 
      } 
       ?> 
    </tr> 
</table>   
    <input type="submit" value="Gem træning" name="submit"> 
</form> 

在收件人页,我有以下代码:

foreach ($_POST['historik'] as $historikArray) 
    { 
echo unserialize($historikArray)[3];  
    } 

其中有目的:

1)通过骑自行车所有行,一个接一个

2)打印代替项[3]从各行(只是作为例子...)

但是,我得到的错误: Notice: unserialize(): Error at offset 0 of 4 bytes

任何人都知道如何解决这个问题?

或者,也许我不在正确的轨道上使用序列化...?

任何帮助表示赞赏! :)

+0

[unserialize()\ [function.unserialize \]的可能的重复:错​​误在偏移量](http://stackoverflow.com/questions/10152904/unserialize-function-unserialize-error-at-offset) – Ohgodwhy 2014-10-11 19:27:04

回答

0

您正在收到通知,因为序列化数据有问题。您没有发布它,所以我不确定它是如何变形的...

maybe I'm not on the right track using serialize

不建议反序列化用户提交的数据。这是由于用户可能会更改数据应该被解码的类,这些数据可能存在安全后果(尤其是在定义了__wakeup()魔术方法的情况下)。

如果你想封装复杂的结构,你可以使用JSON代替。这具有可以使用相同数据格式的本地功能的客户端和服务器的附加益处。