Ho una pagina php con il seguente codice

session_start();

require_once("bean/contratto.php");

if (isset($_SESSION['contratto_ricercato']))
$contratto = $_SESSION['contratto_ricercato'];
else
$contratto = new contratto();

$tipo_categoria = $contratto->get_id_tipo_categoria();

L'oggetto contratto_ricercato viene letto da un database mysql e viene messo in sessione da queste righe di codice:

Codice PHP:
$contratto = new contratto();
$contratto->set_id($id);
$contratto->set_id_tipo_categoria($id_tipo_categoria);
$_SESSION['contratto_ricercato'] = $contratto
L'oggetto contratto è fatto così:

Codice PHP:
class contratto
{
    var 
$id;
    var 
$id_tipo_categoria;

    function 
contratto()
    {
    }
    function 
get_id()
    {
        return 
$this->id;
    }
    function 
set_id($id)
    {
        return 
$this->id $id;
    }    
    function 
get_id_tipo_categoria()
    {
        return 
$this->id_tipo_categoria;
    }
    function 
set_id_tipo_categoria($id_tipo_categoria)
    {
        return 
$this->id_tipo_categoria $id_tipo_categoria;
    }

quando chiamo la mia pagina php ho quest'errore sul browser

Fatal error: main() [function.main]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "contratto" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in C:\Programmi\eclipse-php\workspace\TestPrj\admin_vedi_contratto.php on line 25

alla riga 25 di admin_vedi_contratto.php c'è il codice:

$tipo_categoria = $contratto->get_id_tipo_categoria();

sapete dirmi come mai?