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
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
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

Add a Patch

Pull Requests

Add a Pull Request

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-2024 The PHP Group
All rights reserved.
Last updated: Thu Mar 28 21:01:27 2024 UTC