Symfony Проблема с сериализацией считанных данных из базы

mstdmstd

Новичок
Всем привет,
Проблема с сериализацией считанных данных из базы данных cв проекте Symfony 1.4.16 Propel.
Сначала данные пишутся в базу данных

Код:
  $lNewOrderedItem->setBadgeData( serialize( $ArrayData  ) );
  $lNewOrderedItem->save();
Затем их считываю :
Код:
  $BadgeDataStr= $OrderedItem->getBadgeData();
  var_dump( $BadgeDataStr );
  echo '<br>';
  $BadgeData= unserialize( $BadgeDataStr ); // Тут получаю ошибку Notice: unserialize(): Error at offset 6 of 2193 bytes in /mnt/diskD_Work/wwwroot/roc/apps/backend/modules/admin/templates/ordered_editSuccess.php on line 186 bool(false)
  var_dump($BadgeData);
первый var_dump выводит строку $BadgeDataStr равную
Код:
string(2193) "a:39:{s:5:"badge";s:3:"B38";s:2:"qs";s:1:"0";s:6:"finish";s:6:"Nickel";s:11:"enamel_type";s:7:"regular";s:12:"strike_solid";s:2:"no";s:14:"lettering_font";s:11:"block-black";s:6:"panel2";s:2:"11";s:6:"panel3";s:3:"223";s:6:"panel5";s:0:"";s:10:"seal_style";s:0:"";s:6:"panel6";s:0:"";s:16:"badge_attachment";s:12:"Safety Catch";s:14:"text_separator";s:3:"DOT";s:15:"selected_emboss";s:0:"";s:8:"comments";s:0:"";s:3:"qty";s:2:"11";s:10:"linkholder";s:134:"<img src='http://www.blackinton.com/design-a-badge/generate-image.php?key=b8777b3918a635682a80679c26477704' width='296' height='380'/>";s:3:"dud";s:7:"61832OR";s:5:"dabID";s:19:"vhbdab1386936768961";s:10:"BASE_PRICE";s:5:"51.50";s:12:"ADDON_ENAMEL";s:4:"0.00";s:11:"ADDON_SOLID";s:4:"0.00";s:10:"ADDON_SEAL";s:4:"0.00";s:17:"SEAL_STYLE_NUMBER";s:0:"";s:13:"SEAL_CATEGORY";s:0:"";s:9:"SEAL_SIZE";s:0:"";s:7:"BFINISH";s:1:"N";s:9:"UNITTOTAL";s:5:"51.50";s:8:"EXTTOTAL";s:6:"566.50";s:10:"case_style";s:1:"0";s:9:"caseImage";s:0:"";s:13:"CASEUNITTOTAL";s:4:"0.00";s:12:"CASEEXTTOTAL";s:4:"0.00";s:15:"CASEDESCRIPTION";s:0:"";s:14:"CASEEMBOSSTEXT";s:0:"";s:14:"ATTACHMENTCOST";s:1:"0";s:10:"dimensions";s:23:"2 9/16 (H) x 1 9/16 (W)";s:6:"xmlURL";s:73:"http://www.blackinton.com/design-a-badge/data/xml/vhbdab1386936768961.xml";s:8:"badgeURL";s:73:"http://www.blackinton.com/design-a-badge/data/pdf/vhbdab1386936768961.png";}"

Не пойму откуда ошибка в unserialize ?
 

fixxxer

К.О.
Партнер клуба
у меня твоя строка десериализуется нормально

но есть одна догадка. ты вот это
скопировал откуда? небось из браузера, а не из view source?
 

mstdmstd

Новичок
В View Sourse :

"a:39:{s:5:&quot;badge&quot;;s:3:&quot;B38&quot;;s:2:&quot;qs&quot;;s:1:&quot;0&quot;;s:6:&quot;finish&quot;;s:6:&quot;Nickel&quot;;s:11:&quot;enamel_type&quot;;s:7:&quot;regular&quot;;s:12:&quot;strike_solid&quot;;s:2:&quot;no&quot;;s:14:&quot;lettering_font&quot;;s:11:&quot;block-black&quot;;s:6:&quot;panel2&quot;;s:2:&quot;11&quot;;s:6:&quot;panel3&quot;;s:3:&quot;223&quot;;s:6:&quot;panel5&quot;;s:0:&quot;&quot;;s:10:&quot;seal_style&quot;;s:0:&quot;&quot;;s:6:&quot;panel6&quot;;s:0:&quot;&quot;;s:16:&quot;badge_attachment&quot;;s:12:&quot;Safety Catch&quot;;s:14:&quot;text_separator&quot;;s:3:&quot;DOT&quot;;s:15:&quot;selected_emboss&quot;;s:0:&quot;&quot;;s:8:&quot;comments&quot;;s:0:&quot;&quot;;s:3:&quot;qty&quot;;s:2:&quot;11&quot;;s:10:&quot;linkholder&quot;;s:134:&quot;&lt;img src=&#039;http://www.blackinton.com/design-a-badge/generate-image.php?key=b8777b3918a635682a80679c26477704&#039; width=&#039;296&#039; height=&#039;380&#039;/&gt;&quot;;s:3:&quot;dud&quot;;s:7:&quot;61832OR&quot;;s:5:&quot;dabID&quot;;s:19:&quot;vhbdab1386936768961&quot;;s:10:&quot;BASE_PRICE&quot;;s:5:&quot;51.50&quot;;s:12:&quot;ADDON_ENAMEL&quot;;s:4:&quot;0.00&quot;;s:11:&quot;ADDON_SOLID&quot;;s:4:&quot;0.00&quot;;s:10:&quot;ADDON_SEAL&quot;;s:4:&quot;0.00&quot;;s:17:&quot;SEAL_STYLE_NUMBER&quot;;s:0:&quot;&quot;;s:13:&quot;SEAL_CATEGORY&quot;;s:0:&quot;&quot;;s:9:&quot;SEAL_SIZE&quot;;s:0:&quot;&quot;;s:7:&quot;BFINISH&quot;;s:1:&quot;N&quot;;s:9:&quot;UNITTOTAL&quot;;s:5:&quot;51.50&quot;;s:8:&quot;EXTTOTAL&quot;;s:6:&quot;566.50&quot;;s:10:&quot;case_style&quot;;s:1:&quot;0&quot;;s:9:&quot;caseImage&quot;;s:0:&quot;&quot;;s:13:&quot;CASEUNITTOTAL&quot;;s:4:&quot;0.00&quot;;s:12:&quot;CASEEXTTOTAL&quot;;s:4:&quot;0.00&quot;;s:15:&quot;CASEDESCRIPTION&quot;;s:0:&quot;&quot;;s:14:&quot;CASEEMBOSSTEXT&quot;;s:0:&quot;&quot;;s:14:&quot;ATTACHMENTCOST&quot;;s:1:&quot;0&quot;;s:10:&quot;dimensions&quot;;s:23:&quot;2 9/16 (H) x 1 9/16 (W)&quot;;s:6:&quot;xmlURL&quot;;s:73:&quot;http://www.blackinton.com/design-a-badge/data/xml/vhbdab1386936768961.xml&quot;;s:8:&quot;badgeURL&quot;;s:73:&quot;http://www.blackinton.com/design-a-badge/data/pdf/vhbdab1386936768961.png&quot;;}"
 

fixxxer

К.О.
Партнер клуба
О, я угадал.

Теперь иди и ищи, какой идиот делает перед вставкой в базу htmlspecialchars.
 

mstdmstd

Новичок
да нет смотрю в базе и вижу там
Код:
a:39:{s:5:"badge";s:3:"B38";s:2:"qs";s:1:"0";s:6:"finish";s:6:"Nickel";s:11:"enamel_type";s:7:"regular";s:12:"strike_solid";s:2:"no";s:14:"lettering_font";s:11:"block-black";s:6:"panel2";s:2:"11";s:6:"panel3";s:3:"223";s:6:"panel5";s:0:"";s:10:"seal_style";s:0:"";s:6:"panel6";s:0:"";s:16:"badge_attachment";s:12:"Safety Catch";s:14:"text_separator";s:3:"DOT";s:15:"selected_emboss";s:0:"";s:8:"comments";s:0:"";s:3:"qty";s:2:"11";s:10:"linkholder";s:134:"<img src='http://www.blackinton.com/design-a-badge/generate-image.php?key=b8777b3918a635682a80679c26477704' width='296' height='380'/>";s:3:"dud";s:7:"61832OR";s:5:"dabID";s:19:"vhbdab1386936768961";s:10:"BASE_PRICE";s:5:"51.50";s:12:"ADDON_ENAMEL";s:4:"0.00";s:11:"ADDON_SOLID";s:4:"0.00";s:10:"ADDON_SEAL";s:4:"0.00";s:17:"SEAL_STYLE_NUMBER";s:0:"";s:13:"SEAL_CATEGORY";s:0:"";s:9:"SEAL_SIZE";s:0:"";s:7:"BFINISH";s:1:"N";s:9:"UNITTOTAL";s:5:"51.50";s:8:"EXTTOTAL";s:6:"566.50";s:10:"case_style";s:1:"0";s:9:"caseImage";s:0:"";s:13:"CASEUNITTOTAL";s:4:"0.00";s:12:"CASEEXTTOTAL";s:4:"0.00";s:15:"CASEDESCRIPTION";s:0:"";s:14:"CASEEMBOSSTEXT";s:0:"";s:14:"ATTACHMENTCOST";s:1:"0";s:10:"dimensions";s:23:"2 9/16 (H) x 1 9/16 (W)";s:6:"xmlURL";s:73:"http://www.blackinton.com/design-a-badge/data/xml/vhbdab1386936768961.xml";s:8:"badgeURL";s:73:"http://www.blackinton.com/design-a-badge/data/pdf/vhbdab1386936768961.png";}

Если ту же строку присвоить переменной в одинарные кавычки и слешировать ' символы
Код:
        $BadgeDataStr= 'a:39:{s:5:"badge";s:3:"B38";s:2:"qs";s:1:"0";s:6:"finish";s:6:"Nickel";s:11:"enamel_type";s:7:"regular";s:12:"strike_solid";s:2:"no";s:14:"lettering_font";s:11:"block-black";s:6:"panel2";s:2:"11";s:6:"panel3";s:3:"223";s:6:"panel5";s:0:"";s:10:"seal_style";s:0:"";s:6:"panel6";s:0:"";s:16:"badge_attachment";s:12:"Safety Catch";s:14:"text_separator";s:3:"DOT";s:15:"selected_emboss";s:0:"";s:8:"comments";s:0:"";s:3:"qty";s:2:"11";s:10:"linkholder";s:134:"<img src=\'http://www.blackinton.com/design-a-badge/generate-image.php?key=b8777b3918a635682a80679c26477704\' width=\'296\' height=\'380\'/>";s:3:"dud";s:7:"61832OR";s:5:"dabID";s:19:"vhbdab1386936768961";s:10:"BASE_PRICE";s:5:"51.50";s:12:"ADDON_ENAMEL";s:4:"0.00";s:11:"ADDON_SOLID";s:4:"0.00";s:10:"ADDON_SEAL";s:4:"0.00";s:17:"SEAL_STYLE_NUMBER";s:0:"";s:13:"SEAL_CATEGORY";s:0:"";s:9:"SEAL_SIZE";s:0:"";s:7:"BFINISH";s:1:"N";s:9:"UNITTOTAL";s:5:"51.50";s:8:"EXTTOTAL";s:6:"566.50";s:10:"case_style";s:1:"0";s:9:"caseImage";s:0:"";s:13:"CASEUNITTOTAL";s:4:"0.00";s:12:"CASEEXTTOTAL";s:4:"0.00";s:15:"CASEDESCRIPTION";s:0:"";s:14:"CASEEMBOSSTEXT";s:0:"";s:14:"ATTACHMENTCOST";s:1:"0";s:10:"dimensions";s:23:"2 9/16 (H) x 1 9/16 (W)";s:6:"xmlURL";s:73:"http://www.blackinton.com/design-a-badge/data/xml/vhbdab1386936768961.xml";s:8:"badgeURL";s:73:"http://www.blackinton.com/design-a-badge/data/pdf/vhbdab1386936768961.png";}';
то работает нормально...

я чего-то заблудился
 

mstdmstd

Новичок
и строка
Код:
        $BadgeDataStr= htmlspecialchars_decode( $OrderedItem->getBadgeData() );
не помогает - та же ошибка
 

riff

Новичок
да нет смотрю в базе и вижу там a:39:{s:5:"badge";s:3:"B38";...
В View Sourse : "a:39:{s:5:&quot;badge&quot;;s:3:...
Тогда ставь breakpoint на строку $BadgeDataStr= $OrderedItem->getBadgeData(); , и в путь по F11, искать "перекодировщик".
(не думаю, что он был применён раньше, и $OrderedItem содержит "испорченные" данные уже до вызова getBadgeData).
 
Последнее редактирование:

mstdmstd

Новичок
Да проблема была в стандартном методе getBadgeData()
гпртсал метод считывания данных через
Код:
 $stmt->fetch()
и все заработало...
Спасибо за помощь !
 
Сверху