Работа с функциями serialize и unserialise
То ли по невнимательности, а скорее по не знанию столкнулся с проблемой в работе функций:
SERIALIZE и UNSERIALIZE.
На первый взгляд кажется, что подводных камней быть не должно. Формируем массив элементов, обрабатываем его функцией, если надо - то распаковываем и все в порядке.
Вот здесь, я и натолкнулся на мину. Запаковал массив из полей формы, отправил его в скрипт-обработчик формы, а данных нет. Думаю, что за хрень такая, нельзя заблудится в трех соснах, а у меня, так вообще в двух.
Стал разбираться, оказалось, что элементы массива, перед запаковкой необходимо обрабатывать TRIM(); и удалять пробелы. Если этого не делать, то не получите распакованного массива.
И еще, для себя вывел такое правило:
Запаковываю так :
htmlspecialchars ( serialize ( trim ( $stats_area ) ) )
распаковываю :
unserialize (stripslashes ( htmlspecialchars_decode ( $_REQUEST['stats_area'] ) ) );
В таком случае, проблем при выполнении скрипта не возникало. Удачи вам всем, и не повторяйте этой ошибки.
Читаем вы тему
Теги: php, serialize, unserialize, функции