Storing A PHP Object In A Session Variable

前端 未结 3 804
無奈伤痛
無奈伤痛 2021-01-18 19:14

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

相关标签:
3条回答
  • 2021-01-18 19:34

    I am using this

     if (!is_object($_SESSION)) $_SESSION = new ArrayObject();
    
    0 讨论(0)
  • 2021-01-18 19:42

    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>';
    
    0 讨论(0)
  • 2021-01-18 19:49

    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.

    0 讨论(0)
提交回复
热议问题