ok però c'è qualcosa che nn mi quadra.
supponiamo una funzione del genere:
Codice PHP:
public function login($user, $pwd) {
try {
$query = $this->pdo->prepare('SELECT * FROM utenti WHERE username = ? AND password = ? LIMIT 1');
$query->execute(array(
trim($user),
trim(sha1($pwd))
));
if ($query->rowCount() == 1) {
$this->user = new User();
$this->user->setUser($user);
foreach ($query as $var) {
$this->user->setRuolo($var['ruolo']);
}
$this->user->createSession();
$_SESSION['tipo_utente'] = $this->user;
} else {
echo 'Utente o password sbagliati';
}
} catch (PDOException $e) {
echo '<p class="error">' . $e->getMessage() . '</p>';
die();
}
}
quando faccio il login creao un nuovo oggetto User e lo metto in una variabile di sessione.
il problema è che questo oggetto lo creo solo al submit di un form.
giustamente mi da errore quando apro la pagina la prima volta:
Codice PHP:
Fatal error: Call to a member function getRuolo() on a non-object in /home/mhd-01/www.sito.it/htdocs/header.php on line 22
qua mi perdo.
io ho delle funzioni che devo richiamare prima di fare il login (come anche una che controlla che la sessione sia stata creata).
ma giustamente mi dice che l'oggetto nn esiste in quanto lo creo solo in fase di login.
nn so se mi sono spiegato.