From:             mpamphile at hotmail dot com
Operating system: win 2000 professional
PHP version:      4.4.0
PHP Bug Type:     XML related
Bug description:  wddx_deserialize losing arrays

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

-- 
Edit bug report at http://bugs.php.net/?id=34256&edit=1
-- 
Try a CVS snapshot (php4):   http://bugs.php.net/fix.php?id=34256&r=trysnapshot4
Try a CVS snapshot (php5.0): 
http://bugs.php.net/fix.php?id=34256&r=trysnapshot50
Try a CVS snapshot (php5.1): 
http://bugs.php.net/fix.php?id=34256&r=trysnapshot51
Fixed in CVS:                http://bugs.php.net/fix.php?id=34256&r=fixedcvs
Fixed in release:            http://bugs.php.net/fix.php?id=34256&r=alreadyfixed
Need backtrace:              http://bugs.php.net/fix.php?id=34256&r=needtrace
Need Reproduce Script:       http://bugs.php.net/fix.php?id=34256&r=needscript
Try newer version:           http://bugs.php.net/fix.php?id=34256&r=oldversion
Not developer issue:         http://bugs.php.net/fix.php?id=34256&r=support
Expected behavior:           http://bugs.php.net/fix.php?id=34256&r=notwrong
Not enough info:             
http://bugs.php.net/fix.php?id=34256&r=notenoughinfo
Submitted twice:             
http://bugs.php.net/fix.php?id=34256&r=submittedtwice
register_globals:            http://bugs.php.net/fix.php?id=34256&r=globals
PHP 3 support discontinued:  http://bugs.php.net/fix.php?id=34256&r=php3
Daylight Savings:            http://bugs.php.net/fix.php?id=34256&r=dst
IIS Stability:               http://bugs.php.net/fix.php?id=34256&r=isapi
Install GNU Sed:             http://bugs.php.net/fix.php?id=34256&r=gnused
Floating point limitations:  http://bugs.php.net/fix.php?id=34256&r=float
No Zend Extensions:          http://bugs.php.net/fix.php?id=34256&r=nozend
MySQL Configuration Error:   http://bugs.php.net/fix.php?id=34256&r=mysqlcfg

Reply via email to