5

I'm new to OOP and am writing one of my first classes. I work for an insurance broker and am trying to use a Class to store things about a quote, and store the Object as a session variable.

Thing is, when I view the session variables, I get:

sessionName         

__PHP_Incomplete_Class Object
(
    [__PHP_Incomplete_Class_Name] => myClass
    [brokerId] => 

Can anyone tell me why it's showing incomplete class name?

3 Answers 3

5

Make sure that either the class definition is present before session_start() is called, e.g.

require_once 'class.MyClass.php';
session_start();

or set an unserialize_callback_func that will try to load the class definition as described at http://docs.php.net/function.unserialize.

edit: this can also be done via spl_autoload_register(). E.g.

spl_autoload_register(function($name) {
    // only a demo ...this might be insecure ;-)
  require_once 'class.'.$name.'.php';
});
session_start();
echo '<pre>';
var_dump($_SESSION);
echo '</pre>';
Sign up to request clarification or add additional context in comments.

Comments

1

I managed to fix it all by myself, not sure how though.

I ensured that the page displaying the values was structured like:

require_once("Class.php");
session_start();

$_SESSION['myObject']->printVariables();

And that the page constructing the object was like:

# Include the class
require_once($_SERVER['DOCUMENT_ROOT'] . "/Class.php");

# Instantiate a new policy
$_SESSION['myObject'] = new quote('54');
$_SESSION['myObject']->printVariables();

I also made sure that the page displaying calling the object did not use any serialize functions, as they seemed to only cause errors.

Comments

0

I am using this

 if (!is_object($_SESSION)) $_SESSION = new ArrayObject();

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.