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