php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #28160 Method calls fail on DOM document objects passed as session variables
Submitted: 2004-04-26 17:49 UTC Modified: 2004-04-26 19:27 UTC
From: phil3862 at hotmail dot com Assigned:
Status: Not a bug Package: DOM XML related
PHP Version: 4.3.6 OS: Redhat 9, 2.4.20-30.9
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: phil3862 at hotmail dot com
New email:
PHP Version: OS:

 

 [2004-04-26 17:49 UTC] 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:
--------------
Warning: dump_mem(): Underlying object missing or of invalid type in /home/jks/public_html/auctionhawk/projects/item_specifics/session-tests/reftest5a.php on line 11

Warning: dump_mem(): Cannot fetch DOM object in /home/jks/public_html/auctionhawk/projects/item_specifics/session-tests/reftest5a.php on line 11

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2004-04-26 18:25 UTC] phil3862 at hotmail dot com
Reopening under another id #.
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Wed Feb 05 20:01:30 2025 UTC