ID: 13869
Updated by: hholzgra
Reported By: [EMAIL PROTECTED]
Status: Open
Bug Type: Session related
Operating System: Linux Red-Hat 7.1
PHP Version: 4.0.6
New Comment:
if this is really the complete code then i'd
guess you have session.auto_start enabled in
your php.ini?
if not then i'd recomend you create a special
include file for session startup that includes
all your class definitions and calls session_start()
on its last line
include this file at the very top of every
file that uses session data so that you can
ensure that you have all class definitions
read in *before* the session file is read
there is no feature for automagicaly including
class definitions for objects in a session (yet)
as we do not have a 1:1 mapping between file
and class names as java has so that the engine
has no way to figure out which file to include
for an object
Previous Comments:
------------------------------------------------------------------------
[2001-10-30 07:17:08] [EMAIL PROTECTED]
This bug made me searching 4 days...
First take a class definition in a file called "testclass.php":
class test{
var $attribut;
}
--------------------------------------------------
Then make a "main.php" who contains :
session_start();
//HTML header
echo "<html>";
//Define frames
echo '<frameset rows="80,*" border='.$bord_horz_size.' frameborder="yes"
bordercolor='.$col_bord_horz.'>';
echo '<frame name="status-frame" noresize scrolling="no"
src="/status_gen/status_gen.php">';
echo '<frameset cols="250,*" border='.$bord_vert_size.' frameborder="yes"
bordercolor='.$col_bord_vert.'>';
echo '<frame name="menu-frame" noresize scrolling="no"
src="/menu_gen/menu_gen.php">';
//THE main frame :
echo '<frame name="main-frame" noresize src="/mainframe/mainframe.php">';
//End of the frames
echo "</frameset>";
echo "</frameset>";
//End of HTML
echo "</html>";
-----------------------------------------
Now we define the "mainframe.php" :
require("test.php");
---------------------------------------
Let's define "test.php" :
require_once("testclass.php");
if (!isset($dummy)){
$dummy = new testclass();
$dummy->attribut = "foo bar";
session_register("dummy");
}
else{
echo $dummy->attribut;
}
---------------------------------------
When I refresh the mainframe it says :
"fatal error : The script tried to execute a method or access a property of an
incomplete object. Please ensure that class definition (...).
The bug report #13298 give a walk arround :
include the class definition before the session_start but I can't do it beceause I've
to start my session in the frame-definition-page.
I've to make an important presentation of our project in a few days and this problem
is causing to me a lot of trouble...
I need some help!
Thx a lot!
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=13869&edit=1
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]