2014-10-11 52 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代替。這具有可以使用相同數據格式的本地功能的客戶端和服務器的附加益處。