Passare oggetti con le variabili di sessione

joker_ltd

Nuovo Utente
2 Dic 2007
1
0
0
Scusate, ho un problema che mi sta' facendo impazzire e spero qui possiate aiutarmi.

DESCRIZIONE:

Ho una classe che definisce dei metodi. Instanzio un oggetto. Devo poi utilizzare lo stesso oggetto (stessa istanza dell'oggetto) all'interno di un altro file. Per passarmi l'istanza ho provato a metterlo in una variabile di sessione. Solo che quando poi cerco di utilizzarlo non lo riconosce come tale.

CODICE ESEMPIO:

FILE index.php

/* Crea e assegna la MainArea */
include_once( dirname( __FILE__ ) . "/class/MainArea.cls.php" );
session_start();

... altro codice ...

if( ! isset( $_SESSION[mainarea] ) )
$_SESSION[mainarea] = "";

$_SESSION[mainarea] = new MainArea();
$m = $_SESSION[mainarea];

$m->creaMainArea( $_SESSION[where_i_am] );
$smarty->assign( 'MainArea', $m->returnMainArea() );

... altro codice ...

FILE executeSearch.ajax.php:

include_once( dirname( __FILE__ ) . "/class/MainArea.cls.php" );
session_start();

... altro codice ...

$m = $_SESSION[mainarea];
$m->creaMainArea( $_SESSION[where_i_am] ); /* <=== ERRORE */

... altro codice ...


TENTATIVI FATTI:

Usare gli apici singoli nella definizione della variabile di sessione
$_SESSION['mainarea']

Assegnare prima l'oggetto ad una variabile e poi assegnare quest'ultima alla variabile di sessione (con e senza apici singoli):

$m = new MainArea;
$_SESSION[mainarea] = $m;

Uso PHP 5.2.3, APACHE 2.x su Debian Lenny.

Se testo con is_object( $_SESSION[mainarea] ), oppure dopo l'assegnazione
$m = $_SESSION[mainarea] con is_object( $m ) mi ritorna false.

Ho anche chiuso il browser per evitare che fosse qualche cache dello stesso che teneva in sessione qualche variabile errrata.

Dimenticavo, session.auto_start e' settato a 0 (off).

Grazie per l'aiuto

Greetings
JOKER Ltd.
 

Discussioni simili