Работа с функциями serialize и unserialise

То ли по невнимательности, а скорее по не знанию столкнулся с проблемой в работе функций:

SERIALIZE и UNSERIALIZE.

На первый взгляд кажется, что подводных камней быть не должно. Формируем массив элементов, обрабатываем его функцией, если надо - то распаковываем и все в порядке.

Вот здесь, я и натолкнулся на мину. Запаковал массив из полей формы, отправил его в скрипт-обработчик формы, а данных нет.  Думаю, что за хрень такая, нельзя заблудится в трех соснах, а у меня, так вообще в двух.

Стал разбираться, оказалось, что элементы массива, перед запаковкой необходимо обрабатывать TRIM(); и удалять пробелы. Если этого не делать, то не получите распакованного массива.

И еще,  для себя вывел такое правило:

Запаковываю так :
htmlspecialchars ( serialize ( trim ( $stats_area ) ) )

распаковываю :
unserialize (stripslashes ( htmlspecialchars_decode ( $_REQUEST['stats_area'] ) ) );

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

Читаем вы тему

  • No Related Post