php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #34256 wddx_deserialize losing arrays
Submitted: 2005-08-25 19:04 UTC Modified: 2005-08-26 15:13 UTC
Votes:2
Avg. Score:5.0 ± 0.0
Reproduced:0 of 0 (0.0%)
From: mpamphile at hotmail dot com Assigned:
Status: Not a bug Package: XML related
PHP Version: 4.4.0 OS: win 2000 professional
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: mpamphile at hotmail dot com
New email:
PHP Version: OS:

 

 [2005-08-25 19:04 UTC] mpamphile at hotmail dot com
Description:
------------
wddx_deserialize is only returning the last array in a wddx structure with multiple arrays. 

Reproduce code:
---------------
$servercontents = "<wddxPacket version='1.0'><header><comment></comment></header><data><struct><var name='payment_id'><string>23</string></var><var name='member_id'><string>4</string></var><var name='product_id'><string>5</string></var><var name='begin_date'><string>2005-08-23</string></var><var name='expire_date'><string>2007-08-21</string></var><var name='paysys_id'><string>clickbank</string></var><var name='receipt_id'><string>C7L836H8</string></var><var name='amount'><string>79.95</string></var><var name='completed'><string>1</string></var><var name='remote_addr'><string>209.94.216.188</string></var><var name='data'><array length='2'><struct><var name='product_id'><string>5</string></var><var name='paysys_id'><string>clickbank</string></var><var name='coupon'><string></string></var><var name='action'><string>renew</string></var></struct><struct><var name='seed'><string>23</string></var><var name='cbpop'><string>27RG7BJQ</string></var><var name='cbreceipt'><string>C7L836H8</string></var></struct></array></var><var name='time'><string>20050821173210</string></var><var name='aff_id'><string>0</string></var><var name='payer_id'><string></string></var><var name='coupon_id'><string>0</string></var><var name='tm_added'><string>2005-08-21 17:31:33</string></var><var name='tm_completed'><string>2005-08-21 17:32:10</string></var><var name='payment_id'><string>22</string></var><var name='member_id'><string>4</string></var><var name='product_id'><string>4</string></var><var name='begin_date'><string>2005-08-23</string></var><var name='expire_date'><string>2006-08-21</string></var><var name='paysys_id'><string>clickbank</string></var><var name='receipt_id'><string>CDSDHXG8</string></var><var name='amount'><string>39.95</string></var><var name='completed'><string>1</string></var><var name='remote_addr'><string>209.94.216.188</string></var><var name='data'><array length='2'><struct><var name='product_id'><string>4</string></var><var name='paysys_id'><string>clickbank</string></var><var name='coupon'><string></string></var><var name='action'><string>renew</string></var></struct><struct><var name='seed'><string>22</string></var><var name='cbpop'><string>M2C6CHPT</string></var><var name='cbreceipt'><string>CDSDHXG8</string></var></struct></array></var><var name='time'><string>20050821152456</string></var><var name='aff_id'><string>0</string></var><var name='payer_id'><string></string></var><var name='coupon_id'><string>0</string></var><var name='tm_added'><string>2005-08-21 15:21:11</string></var><var name='tm_completed'><string>2005-08-21 15:24:56</string></var><var name='payment_id'><string>18</string></var><var name='member_id'><string>4</string></var><var name='product_id'><string>1</string></var><var name='begin_date'><string>2005-08-23</string></var><var name='expire_date'><string>2005-08-21</string></var><var name='paysys_id'><string>clickbank</string></var><var name='receipt_id'><string>manual</string></var><var name='amount'><string>0.00</string></var><var name='completed'><string>1</string></var><var name='remote_addr'><string></string></var><var name='data'><array length='1'><boolean value='false'/></array></var><var name='time'><string>20050821144942</string></var><var name='aff_id'><string>0</string></var><var name='payer_id'><string></string></var><var name='coupon_id'><string>0</string></var><var name='tm_added'><string>2005-08-21 14:49:42</string></var><var name='tm_completed'><string>2005-08-21 14:49:42</string></var></struct></data></wddxPacket>";


$xmlvalues = wddx_deserialize("$servercontents"); 



if(!empty($xmlvalues)) 

{ 

foreach ($xmlvalues as $key => $data) 

    { 

     echo "$key => $data<br>"; 

    } 

} 





Expected result:
----------------
There are three arrays inside of the wddx structure,

payment_id => 23 
member_id => 4 
product_id => 5 
begin_date => 2005-08-25 
expire_date => 2007-08-21 
paysys_id => clickbank 
receipt_id => C7L836H8 
amount => 79.95 
completed => 1 
remote_addr => 209.94.216.188 
data => Array 
time => 20050821173210 
aff_id => 0 
payer_id => 
coupon_id => 0 
tm_added => 2005-08-21 17:31:33 
tm_completed => 2005-08-21 17:32:10 


--------------------------------------------------------------------------------

payment_id => 22 
member_id => 4 
product_id => 4 
begin_date => 2005-08-25 
expire_date => 2006-08-21 
paysys_id => clickbank 
receipt_id => CDSDHXG8 
amount => 39.95 
completed => 1 
remote_addr => 209.94.216.188 
data => Array 
time => 20050821152456 
aff_id => 0 
payer_id => 
coupon_id => 0 
tm_added => 2005-08-21 15:21:11 
tm_completed => 2005-08-21 15:24:56 


--------------------------------------------------------------------------------

payment_id => 18 
member_id => 4 
product_id => 1 
begin_date => 2005-08-25 
expire_date => 2005-08-21 
paysys_id => clickbank 
receipt_id => manual 
amount => 0.00 
completed => 1 
remote_addr => 
data => Array 
time => 20050821144942 
aff_id => 0 
payer_id => 
coupon_id => 0 
tm_added => 2005-08-21 14:49:42 
tm_completed => 2005-08-21 14:49:42 


--------------------------------------------------------------------------------


Actual result:
--------------
It only reproduces the last one

payment_id => 18
member_id => 4
product_id => 1
begin_date => 2005-08-25
expire_date => 2005-08-21
paysys_id => clickbank
receipt_id => manual
amount => 0.00
completed => 1
remote_addr => 
data => Array
time => 20050821144942
aff_id => 0
payer_id => 
coupon_id => 0
tm_added => 2005-08-21 14:49:42
tm_completed => 2005-08-21 14:49:42

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2005-08-26 15:13 UTC] sniper@php.net
Try var_dump() on the result array. There's nothing wrong with it. Your expected results are totally wrong too.
That wddx packet contains one assoc array with 11 elements.

 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Tue Jul 01 21:01:35 2025 UTC