Ciao a tutti,
sto cercando di costruire una pagina dinamica nella quale ho un menu utente che veiene popolato dinamicamente in base appunto all'utente che effettua il login. Visto che sto approfondendo la programmazione ad oggetti, ho pensato di sviluppare seguendo questa logica utilizzando PHP. In pratica ho costruito una classe, che richiama molto la struttura di un Bean Java, che definisce la struttura dell'oggetto Utente. quest'oggetto viene popolato da una funzione che come input ha appunto il nome dell'utente che si è appena loggato(che passo da Sessione). L'autenticazione, la connessione al db e la risposta vanno bene, ma il bean non viene popolato. Vi posto il codice:
classe User:
Codice PHP:
<?php
class User
{
public $nome;
public $cognome;
public $username;
public $password;
public $ruolo;
public $lastAccess;
public $id;
public function getId()
{
return $this->id;
}
public function setId($iduser)
{
$id = $iduser;
}
public function getName()
{
return $this->nome;
}
public function setName($nameUser)
{
$nome = $nameUser;
}
public function getCognome()
{
return $this->cognome;
}
public function setCognome($cognomeUser)
{
$cognome = $cognomeUser;
}
public function getUsername()
{
return $this->username;
}
public function setUsername($usernameUser)
{
$username = $usernameUser;
}
public function getPassword()
{
return $this->password;
}
public function setPassword($passwordUser)
{
$password = $passwordUser;
}
public function getLastAccess()
{
return $this->lastAccess;
}
public function setLastAccess($lastAccessUser)
{
$lastAccess = $lastAccessUser;
}
public function getRuolo()
{
return $this->ruolo;
}
public function setRuolo($ruoloUser)
{
$ruolo = $ruoloUser;
}
}
?>
Classe InteractionDb
Codice PHP:
<?php
include 'config_root.php';
class InteractionDb
{
public function getDataFromDb($nameUser)
{
$user = new User();
$query = "SELECT * FROM database_tss.logintss WHERE username='$nameUser'";
$result = mysql_query($query);
if($result)
{
while($row = mysql_fetch_array($result,MYSQL_BOTH))
{
$user->setName($row[1]);
$user->setCognome($row[2]);
$user->setRuolo($row[3]);
$user->setUsername($row[4]);
$user->setPassword($row[5]);
$user->setLastAccess($row[6]);
}
}
else
{
die ('Errore di selezione DataBase :'.mysql_error());
}
return $user;
}
}
?>
qui invece è dove vengono utilizzate le funzioni:
Codice PHP:
function getDataUtente($name)
{
$util = new Utility();
$interaction = new InteractionDb();
$user = new User();
$user = $interaction->getDataFromDb($name);
$util->stampaMenu($user);
}
Il problema è all'interno del while: la query và a buon fine infatti se faccio un echo delle singole row all'interno del while ho i valori, ma il "bean" non viene popolato. Grazie a tutti, e chiedo scusa se la domanda può sembrare banale, ma sonon alle prime armi con PHP e con la programmazione in generale