Ниже приведен образец ячейки из таблицы в форме.
В каждой строке таблицы несколько одинаковых ячеек, и в таблице может быть несколько строк.
Я хочу разместить каждую строку на другой странице, а затем иметь возможность циклически проходить по каждой строке. Пока что я написал это для каждой ячейки:
<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
Кто-нибудь знает, как это исправить?
Или, может быть, я не на правильном пути, используя сериализацию …?
Любая помощь приветствуется! 🙂
Вы получаете уведомление, потому что с сериализованными данными что-то не так. Вы не опубликовали это, поэтому я не уверен, как это искажено, однако …
может быть, я не на правильном пути, используя сериализацию
Не рекомендуется десериализовать предоставленные пользователем данные. Это связано с тем, что пользователь может изменить класс, в соответствии с которым данные должны быть несериализованы, что может иметь последствия для безопасности (особенно, если существует __wakeup()
магический метод определен).
Если вы хотите инкапсулировать сложную структуру, вы можете использовать вместо нее JSON. Это дает дополнительное преимущество как клиенту, так и серверу, имеющему собственные функции, которые могут работать с одним и тем же форматом данных.
Других решений пока нет …