PHP: Сериализация / десериализация скрытого массива в форме

Работа с PHP 5.5.9

Я пытаюсь отправить скрытый сериализованный массив в форму. У меня есть форма и сценарий действия в одном файле, используя

 <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">

Я инициализирую массив в начале файла:

 <?php $sports = array("Basketball", "Football", "Handball");?>

Я добавляю кнопку ОК в мою форму:

 <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<input type="hidden" name="serializedData" value="<?php echo serialize($sports);?>">
<input type="submit" name="okButton" value="OK"><br>
</form>

Теперь я пытаюсь десериализовать скрытый массив, когда пользователь нажимает кнопку ОК. Я хочу, чтобы код также печатал содержимое массива

if(isset($_POST['okButton'])) {
$sports_new = unserialize($_POST['serializedData']);

// Show array
for($i = 0; $i < count($sports_new); $i++) {
print $sports_new[$i]."<br/>";
}

Но ничего не показано. Я предполагаю, что входной скрытый элемент моей формы не получает никаких данных. Но массив $ sports инициализируется в начале файла. Почему он не сериализуется?
Или моя проблема заключается в десериализации кода?

-1

Решение

Хорошо, я следовал твоим намекам.
Необходимо преобразовать htmlentities до:

 <input type="hidden" name="serializedData" value="<?php echo htmlentities(serialize($sports));?>">
-1

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

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

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