ID:               28163
 User updated by:  phil3862 at hotmail dot com
 Reported By:      phil3862 at hotmail dot com
 Status:           Open
 Bug Type:         DOM XML related
 Operating System: Redhat 9, 2.4.20-30.9
 PHP Version:      4.3.6
 New Comment:

In the reproduce code, there should be a print before each dump_mem(),
so the reproduce code should be:

<?php

session_start();

/**
 * This code tests method calls on a reference to a DOM object that
 * has been passed as a session variable.
 */

if (session_is_registered('foo')) {
    print $_SESSION['foo']->dump_mem();
    session_unregister('foo');
 } else {
    print "Creating reference to new DOM object as a session
variable...";
    session_register('foo');
    $xml = "<?xml version='1.0' ?><foo><bar>Hoot!</bar></foo>";
    $_SESSION['foo'] =& domxml_open_mem($xml);
 }

?>

<?php

session_start();

/**
 * This code tests method calls on a DOM object that has been passed
 * as a session variable.
 */

if (session_is_registered('foo')) {
    print $_SESSION['foo']->dump_mem();
    session_unregister('foo');
 } else {
    print "Creating new DOM object as a session variable...";
    session_register('foo');
    $xml = "<?xml version='1.0' ?><foo><bar>Hoot!</bar></foo>";
    $_SESSION['foo'] = domxml_open_mem($xml);
 }

?>


Previous Comments:
------------------------------------------------------------------------

[2004-04-26 21:04:10] phil3862 at hotmail dot com

>From the information that I have available to me now, I believe this is
a bug with the experimental DOM XML extension that ships with php
4.3.6.  I reduced the issue to two short scripts in the "Reproduce
code" section that each reproduce the behavior.

In order to reproduce the behavior, take either one of the scripts, run
it in a web browser, click reload, and observe the behavior.

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

[2004-04-26 20:10:51] [EMAIL PROTECTED]

Sorry, but your problem does not imply a bug in PHP itself.  For a
list of more appropriate places to ask for help using PHP, please
visit http://www.php.net/support.php as this bug system is not the
appropriate forum for asking support questions. 

Thank you for your interest in PHP.

.

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

[2004-04-26 18:30:43] phil3862 at hotmail dot com

Description:
------------
Method calls fail on DOM document objects passed as session variables. 
This happens whether you pass the DOM document object itself or a
reference to the object as a session variable.  If you serialize and
unserialize an object reference to a DOM document object without
passing it as a session variable, it works fine:

<?php

  /**
   * This test shows that a reference to a DOM object can be
   * serialized and unserialized and still be used.
   */
$xml = "<?xml version='1.0' ?><foo><bar>Hoot!</bar></foo>";
$foo =& domxml_open_mem($xml);
$foo = unserialize(serialize($foo));
print $foo->dump_mem();

?>


Reproduce code:
---------------
<?php

session_start();

/**
 * This code tests method calls on a reference to a DOM object that
 * has been passed as a session variable.
 */

if (session_is_registered('foo')) {
    $_SESSION['foo']->dump_mem();
    session_unregister('foo');
 } else {
    print "Creating reference to new DOM object as a session
variable...";
    session_register('foo');
    $xml = "<?xml version='1.0' ?><foo><bar>Hoot!</bar></foo>";
    $_SESSION['foo'] =& domxml_open_mem($xml);
 }

?>

<?php

session_start();

/**
 * This code tests method calls on a DOM object that has been passed
 * as a session variable.
 */

if (session_is_registered('foo')) {
    $_SESSION['foo']->dump_mem();
    session_unregister('foo');
 } else {
    print "Creating new DOM object as a session variable...";
    session_register('foo');
    $xml = "<?xml version='1.0' ?><foo><bar>Hoot!</bar></foo>";
    $_SESSION['foo'] = domxml_open_mem($xml);
 }

?>


Expected result:
----------------
Both of these scripts should print the original xml source.


Actual result:
--------------
Both fail with "Warning: dump_mem(): Underlying object missing or of
invalid type" followed by "Warning: dump_mem():  Cannot fetch DOM
object" error.


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


-- 
Edit this bug report at http://bugs.php.net/?id=28163&edit=1

Reply via email to