Ciao a tutti,

sto realizando un cms modulare, molto specifico, il quale mi servirà anche come progetto d'esame. La tecnologia impiegata è PHP e AJAX (attraverso JQuery).

Sto utilizzando le classi come vincolo del progetto e sono incappato in un problemino particolare ovvero:

1 fase: la fase di login è fatta tramite ajax, quindi una volta loggato, creo un oggetto di typo user e tramite la variabile $_SESSION['user'] la rendo globale, poi vengo mandato alla pagina index.php?page=main, la quale è generata per mezzo della classe HTMLGenerator


Codice PHP:
$fields setURI$uri );
        
$user $_SESSION['user'];

switch ( 
getUriPage($fields) ) {
  case 
"main"
    
$metaTag = array("language"=>"it");
    
$html = new HTMLGenerator("AREA RISERVATA::KICK BOXING TEAM");
    
$html->setMeta($metaTag);
    
$html->setContent(getUriPage($fields));
    
$html->setUser($user);
    
$html->outputPage();
    break; 
Come si può notare grazie a:

Codice PHP:
$user $_SESSION['user']; 
ho ricreato l'oggetto $user e fino a qua tutto chiaro, il problema viene adesso.
Nel metodo

Codice PHP:
$html->outputPage(); 
è presente un require di una pagina per il template

ora se io volessi stampare per esempio i dati di $user in teoria mi basterebbe fare

Codice PHP:
$user->getUsername() 
il problema è che così facendo non riconosce l'oggetto $user e mi stampa un errore del tipo

Notice: Undefined variable: user in D:\Programmi\Apache Software Foundation\Apache 2.2\htdocs\KBSalso\admin\html\index.php on line 11

Fatal error: Call to a member function getUsr() on a non-object in D:\Programmi\Apache Software Foundation\Apache 2.2\htdocs\KBSalso\admin\html\index.php on line 11
per rimediare a questo problema ho creato 2 metodi per la classe HTMLGenerator, uno che setti la variabile User e l'altro che lo legga

Ma perché non posso usare semplicemente $user->getUsername ??????????
E' vero che faccio require ma in teoria il require anche se di un'altra pagina dovrebbe cmq vedere l'oggetto...

Vi prego datemi delle spiegazioni...
Non è possibile che si debba sempre usare $_SESSION