ciao a tutti...
Ho bisogno di un aiuto concettuale, non vorrei abbandonarmi alla 'mala' programmazione.
argomento : OOP
io vorrei fare un software basato sugli oggetti in maniera da imparare bene (in php) la OOP.
voglio fare una login:
io possiedo una classe chiamata utenti.php al suo interno ci sono i metodi getter e setter di un ipotetico utente (poi sarà ampliata con i dati che dovrà avere l'utente.)
Codice PHP:
class utenti {
protected $utente = "";
protected $password = "";
protected $livello = "";
protected $idUtenza = "";
public function __construct(){
$this->idUtenza = $idUtenza;
$this->utente = $utente ;
$this->password = $password;
$this->livello = $livello;
}
public function setUtente ($utente){
$this->utente = $utente;
}
public function getUtente (){
return $this->utente;
}
public function setPassword ($password){
$this->password = $password;
}
public function getPassword (){
return $this->password;
}
public function setLivello ($livello){
$this->livello = $livello;
}
public function getLivello (){
return $this->livello;
}
public function setIdutenza ($idUtenza){
$this->idUtenza = $idUtenza;
}
public function getIdutenza (){
return $this->idUtenza;
}
}
ovviamente ho una classe 'main' chiamata sessione.php dove viene richiamato tutto il necessari per effettuare una login
Codice PHP:
session_start();
class sessione {
}
include ("../../domande/interrogazione.php");
include ("../../configurazioni/connessione.php");
//carico oggetti
$interrogo = new interrogazione();
$connessione = new Connessione();
//Setto dell'utente nella mia classe 'utenti'
$interrogo->setUtente($_POST['user_name']);
$interrogo->setPassword($_POST['pass']);
$login = $interrogo->Login($interrogo->getUtente() , $interrogo->getPassword());
if ($login){
$_SESSION['id'] = $interrogo->getIdutenza();
$_SESSION['utente'] = $interrogo->getUtente();
header("Location:../../service/index.php?id_user=".$interrogo->getIdutenza());
exit();
}else{
$_SESSION['errorelogin'] = "Riscontrato errore Tentare nuovamente l’accesso";
header("Location:../../index.php?pag=accesso");
exit();
}
//echo $utente->isEsistente();
$connessione->Chiudo_Connessione();
successivamente ho una classe dove vengono effettuate tutte le mie Query.. la classe si chiama interrogazioni.php
Codice PHP:
include ("/var/www/DTO/utenti.php");
class interrogazione extends utenti {
private static $nomehost= "nomehost";
public function Login ($utente , $password){
$database = mysql_select_db(self::$nomehost);
$sql = "SELECT * FROM utenti;";
$eseguo = mysql_query($sql) or die ("ERRORE IN MYSQL_LOGIN ".mysql_error());
while ($row = mysql_fetch_assoc($eseguo)){
$user = $row['user_name'];
$pass = $row['password'];
$livello = $row['livello'];
$id = $row['id_utente'];
if ($user === $utente && $pass === $password){
$this->setLivello($livello);
$this->setIdutenza($id);
$trovato = true;
break;
}else{
$tovato = false;
}
}
return $trovato;
}//chiudo login
i miei dubbi e su come ho creato queste pagine:
SESSIONE.PHP
1-devo sempre includere un oggetto all'interno del mio progetto con include("xxx") o ce un metodo integrato nella OOP?
2-se connetto il database nella pagina principale posso evitare di richiamare la classe connessione nel mio oggetto interrogazioni?
INTERROGAZIONI.PHP
1-io per ora mi faccio restituire un array che andrò a scorrerre nella mia classe per estrapolare i dati. Non potrei usare la classe utenti per metttere il risultato al suo interno e poi recuperarli nell'altra classe?
2-restituire un array è cosa giusta e buona oppure è meglio evitare visto le risorse che occupa?
vi sarei molto grato delle risposte o dei consigli che potete darmi... nelle differenti guide non ho trovato molto!
ciao!