#19857 [Fbk]: wddx_deserialize Does Not Work Properly with Complex Data Types
| From: | sniper@php.net | Date: | Sun, 13 Oct 2002 11:24:51 +0000 |
| Subject: | #19857 [Fbk]: wddx_deserialize Does Not Work Properly with Complex Data Types | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-22284@lists.php.net to get a copy of this message | ||
ID: 19857
Updated by: sniper@php.net
Reported By: darwin@museplay.com
Status: Feedback
Bug Type: WDDX related
Operating System: Win XP Pro
PHP Version: 4.2.3
New Comment:
Please provide shortest possible example script that can
be just copy pasted and run. That would help us a lot..
Previous Comments:
------------------------------------------------------------------------
[2002-10-13 06:24:45] sniper@php.net
Please provide shortest possible example script that can
be just copy pasted and run. That would help us a lot..
------------------------------------------------------------------------
[2002-10-13 04:07:53] darwin@museplay.com
BTW, I apologize for all of the submissions; I mistakenly submitted
more times that I wanted to...
------------------------------------------------------------------------
[2002-10-13 04:06:35] darwin@museplay.com
I tried changing the order of the fields in the WDDX packet,
removing fields from the WDDX packet, changing the types of the fields
in the WDDX packet, etc., none of this appears to have an impact on how
PHP unserializes the packet. Also, PHP consistently only populates the
"last" four fields of the aoSuboptions array in the example that I sent
you, no matter how the WDDX packet is modified.
For example, this WDDX packet produces the same unserialized results as
stated in the original submission, even though the order of fields and
field data types in the packet have been changed:
<wddxPacket version="1.0"><header /><data><struct><var
name="php_class_name"><string>COption</string></var><var
name="sScriptRoot"><string>http://localhost/Delisma/Menu/</string></var><var
name="aoImages"><array length="0" /></var><var
name="fDiscountRate"><number>0</number></var><var
name="fTaxRate"><number>0.0825</number></var><var
name="aoSuboptions"><array length="2"><struct><var
name="iMaxNumPaidSuboptions"><number>2</number></var><var
name="iMinNumPaidSuboptions"><number>2</number></var><var
name="iMaxNumFreeSuboptions"><number>3</number></var><var
name="iMinNumFreeSuboptions"><number>1</number></var><var
name="bActive"><boolean value="false" /></var><var
name="bDiscounted"><boolean value="false" /></var><var
name="bTaxable"><boolean value="false" /></var><var
name="fWholesalePrice"><string>5.02</string></var><var
name="fRetailPrice"><string>5.35</string></var><var
name="iTimesAvailable"><string>5</string></var><var
name="sDetailedDesc"><string>good good stuff</string></var><var
name="sBriefDesc"><string>good stuff</string></var><var
name="sName"><string>pizza</string></var><var
name="iID"><number>1</number></var><var
name="oItemCategories"><null
/></var><var name="aoOptionMenues"><null /></var><var
name="oOptionImages"><null /></var><var
name="oOptionDiscounts"><null
/></var><var name="oOptionTaxes"><null /></var><var
name="oOptionSuboptions"><null /></var><var
name="iPosition"><null
/></var><var name="iNumber"><null /></var><var
name="sConstructionErrors"><null /></var><var
name="aoSuboptions"><null
/></var><var name="aoImages"><null /></var><var
name="php_class_name"><string>COption</string></var><var
name="sScriptRoot"><string>http://localhost/Delisma/Menu/</string></var><var
name="fDiscountRate"><number>0</number></var><var
name="fTaxRate"><number>0.0825</number></var><var
name="sQuestion"><string>What size do you
want?</string></var></struct><struct><var
name="sScriptRoot"><string>http://localhost/Delisma/Menu/</string></var><var
name="fDiscountRate"><number>0</number></var><var
name="fTaxRate"><number>0.0825</number></var><var
name="sQuestion"><string>What size do you want?</string></var><var
name="iMaxNumPaidSuboptions"><string>2</string></var><var
name="iMinNumPaidSuboptions"><string>2</string></var><var
name="iMaxNumFreeSuboptions"><string>3</string></var><var
name="iMinNumFreeSuboptions"><string>1</string></var><var
name="bActive"><boolean value="false" /></var><var
name="bDiscounted"><boolean value="false" /></var><var
name="bTaxable"><boolean value="false" /></var><var
name="fWholesalePrice"><string>5.02</string></var><var
name="fRetailPrice"><string>5.35</string></var><var
name="iTimesAvailable"><string>5</string></var><var
name="sDetailedDesc"><string>good good stuff</string></var><var
name="sBriefDesc"><string>good stuff</string></var><var
name="sName"><string>salad</string></var><var
name="iID"><number>2</number></var><var
name="oItemCategories"><null
/></var><var name="aoOptionMenues"><null /></var><var
name="oOptionImages"><null /></var><var
name="oOptionDiscounts"><null
/></var><var name="oOptionTaxes"><null /></var><var
name="oOptionSuboptions"><null /></var><var
name="iPosition"><null
/></var><var name="iNumber"><null /></var><var
name="sConstructionErrors"><null /></var><var
name="aoSuboptions"><null
/></var><var name="aoImages"><null /></var><var
name="php_class_name"><string>coption</string></var></struct></array></var><var
name="sQuestion"><string>Waz' up?</string></var><var
name="iMaxNumPaidSuboptions"><number>2</number></var><var
name="iMinNumPaidSuboptions"><number>0</number></var><var
name="iMaxNumFreeSuboptions"><number>1</number></var><var
name="iMinNumFreeSuboptions"><number>0</number></var><var
name="bActive"><boolean value="false" /></var><var
name="bDiscounted"><boolean value="false" /></var><var
name="bTaxable"><boolean value="false" /></var><var
name="fWholesalePrice"><number>12</number></var><var
name="fRetailPrice"><number>18</number></var><var
name="iTimesAvailable"><number>5</number></var><var
name="sDetailedDesc"><string>'Da bomb is hear again! This is a
friggin' quarter pound of good, good stuff!</string></var><var
name="sBriefDesc"><string>'Dis Shit is
Wack!</string></var><var
name="iPosition"><number>0</number></var><var
name="iNumber"><number>55</number></var><var
name="sName"><string>Wacky
Burger 5</string></var><var
name="iID"><number>0</number></var></struct></data></wddxPacket>
Thus, I would suspect that, since this bug is so easy to reproduce, it
will not be difficult to fix...
------------------------------------------------------------------------
[2002-10-13 04:06:06] darwin@museplay.com
I tried changing the order of the fields in the WDDX packet,
removing fields from the WDDX packet, changing the types of the fields
in the WDDX packet, etc., none of this appears to have an impact on how
PHP unserializes the packet. Also, PHP consistently only populates the
"last" four fields of the aoSuboptions array in the example that I sent
you, no matter how the WDDX packet is modified.
For example, this WDDX packet produces the same unserialized results as
stated in the original submission, even though the order of fields and
field data types in the packet have been changed:
<wddxPacket version="1.0"><header /><data><struct><var
name="php_class_name"><string>COption</string></var><var
name="sScriptRoot"><string>http://localhost/Delisma/Menu/</string></var><var
name="aoImages"><array length="0" /></var><var
name="fDiscountRate"><number>0</number></var><var
name="fTaxRate"><number>0.0825</number></var><var
name="aoSuboptions"><array length="2"><struct><var
name="iMaxNumPaidSuboptions"><number>2</number></var><var
name="iMinNumPaidSuboptions"><number>2</number></var><var
name="iMaxNumFreeSuboptions"><number>3</number></var><var
name="iMinNumFreeSuboptions"><number>1</number></var><var
name="bActive"><boolean value="false" /></var><var
name="bDiscounted"><boolean value="false" /></var><var
name="bTaxable"><boolean value="false" /></var><var
name="fWholesalePrice"><string>5.02</string></var><var
name="fRetailPrice"><string>5.35</string></var><var
name="iTimesAvailable"><string>5</string></var><var
name="sDetailedDesc"><string>good good stuff</string></var><var
name="sBriefDesc"><string>good stuff</string></var><var
name="sName"><string>pizza</string></var><var
name="iID"><number>1</number></var><var
name="oItemCategories"><null
/></var><var name="aoOptionMenues"><null /></var><var
name="oOptionImages"><null /></var><var
name="oOptionDiscounts"><null
/></var><var name="oOptionTaxes"><null /></var><var
name="oOptionSuboptions"><null /></var><var
name="iPosition"><null
/></var><var name="iNumber"><null /></var><var
name="sConstructionErrors"><null /></var><var
name="aoSuboptions"><null
/></var><var name="aoImages"><null /></var><var
name="php_class_name"><string>COption</string></var><var
name="sScriptRoot"><string>http://localhost/Delisma/Menu/</string></var><var
name="fDiscountRate"><number>0</number></var><var
name="fTaxRate"><number>0.0825</number></var><var
name="sQuestion"><string>What size do you
want?</string></var></struct><struct><var
name="sScriptRoot"><string>http://localhost/Delisma/Menu/</string></var><var
name="fDiscountRate"><number>0</number></var><var
name="fTaxRate"><number>0.0825</number></var><var
name="sQuestion"><string>What size do you want?</string></var><var
name="iMaxNumPaidSuboptions"><string>2</string></var><var
name="iMinNumPaidSuboptions"><string>2</string></var><var
name="iMaxNumFreeSuboptions"><string>3</string></var><var
name="iMinNumFreeSuboptions"><string>1</string></var><var
name="bActive"><boolean value="false" /></var><var
name="bDiscounted"><boolean value="false" /></var><var
name="bTaxable"><boolean value="false" /></var><var
name="fWholesalePrice"><string>5.02</string></var><var
name="fRetailPrice"><string>5.35</string></var><var
name="iTimesAvailable"><string>5</string></var><var
name="sDetailedDesc"><string>good good stuff</string></var><var
name="sBriefDesc"><string>good stuff</string></var><var
name="sName"><string>salad</string></var><var
name="iID"><number>2</number></var><var
name="oItemCategories"><null
/></var><var name="aoOptionMenues"><null /></var><var
name="oOptionImages"><null /></var><var
name="oOptionDiscounts"><null
/></var><var name="oOptionTaxes"><null /></var><var
name="oOptionSuboptions"><null /></var><var
name="iPosition"><null
/></var><var name="iNumber"><null /></var><var
name="sConstructionErrors"><null /></var><var
name="aoSuboptions"><null
/></var><var name="aoImages"><null /></var><var
name="php_class_name"><string>coption</string></var></struct></array></var><var
name="sQuestion"><string>Waz' up?</string></var><var
name="iMaxNumPaidSuboptions"><number>2</number></var><var
name="iMinNumPaidSuboptions"><number>0</number></var><var
name="iMaxNumFreeSuboptions"><number>1</number></var><var
name="iMinNumFreeSuboptions"><number>0</number></var><var
name="bActive"><boolean value="false" /></var><var
name="bDiscounted"><boolean value="false" /></var><var
name="bTaxable"><boolean value="false" /></var><var
name="fWholesalePrice"><number>12</number></var><var
name="fRetailPrice"><number>18</number></var><var
name="iTimesAvailable"><number>5</number></var><var
name="sDetailedDesc"><string>'Da bomb is hear again! This is a
friggin' quarter pound of good, good stuff!</string></var><var
name="sBriefDesc"><string>'Dis Shit is
Wack!</string></var><var
name="iPosition"><number>0</number></var><var
name="iNumber"><number>55</number></var><var
name="sName"><string>Wacky
Burger 5</string></var><var
name="iID"><number>0</number></var></struct></data></wddxPacket>
Thus, I would suspect that, since this bug is so easy to reproduce, it
will not be difficult to fix...
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/19857
--
Edit this bug report at http://bugs.php.net/?id=19857&edit=1