массивы — проблема при десериализации размещенной формы 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

Решение

Вы получаете уведомление, потому что с сериализованными данными что-то не так. Вы не опубликовали это, поэтому я не уверен, как это искажено, однако …

может быть, я не на правильном пути, используя сериализацию

Не рекомендуется десериализовать предоставленные пользователем данные. Это связано с тем, что пользователь может изменить класс, в соответствии с которым данные должны быть несериализованы, что может иметь последствия для безопасности (особенно, если существует __wakeup() магический метод определен).

Если вы хотите инкапсулировать сложную структуру, вы можете использовать вместо нее JSON. Это дает дополнительное преимущество как клиенту, так и серверу, имеющему собственные функции, которые могут работать с одним и тем же форматом данных.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]