Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [OOP] classe di connessione a database..ed estensione per registrazione/login

    In primis buongiorno Utenti del forum,

    vi ringrazio in primis della vostra gent.le attenzione all'argomento in questione che mi sta attualmente un pò attanagliando:

    Premettiamo che sono GIOVINE di programmazione ad oggetti con PHP, ma aldilà di questo:la mia necessità è quella di estendere una classe in modo tale che in caso di login o registrazione abbia la possibilità di estendere all'occorrenza la classe database per poter effettuare la connessione, verificare che la connessione sia già stata effettuata, e successivamente registrare o far loggare l'utente in questione.

    Attualmente ho creato la seguente classe di connessione:

    codice:
    // definizione della classe astratta class ConnessioneMySQL   { 	 	protected $Utente;     protected $Password; 	protected $Host; 	protected $database; 	protected $connessione; 	private $err; 	public $errorMsgs = array( 		'connessione' => 'connessione non avvenuta', 		'connessione_database' => 'database non trovato o non selezionato correttamente', 	 	); 	 	 	protected function getErrorMsg() { 		if($this->err != '') { 			print  $this->err; 			return false; 		}else { 			 			print "nessun errore rilevato"; 			 			 		} 	}  protected function ErroreMessaggio($campo) { 		if($this->errorMsgs[$campo]) { 			$this->err .= "
    
    " . $this->errorMsgs[$campo] . "</p>"; 		} 		 } 	    protected function settaUtente($user)  { 	       $this->Utente = $user; 	   }    protected function settaPassword($password) { 	       $this->Password = $password; 	   }    protected function settaHost($host) { 	       $this->Host = $host; 	   }    protected function settadb($db) { 	       $this->database = $db; 	   }    protected function getUtente() { 	       return ($this->Utente); 	   }    protected function getPassword() { 	       return ($this->Password); 	   }    protected function getHost() { 	       return ($this->Host); 	   }    protected function getDb() { 	       return ($this->database); 	   }    }   class estendiMysql extends ConnessioneMySQL { 	 	 	 	protected function DatiConnessione(){ 		     $connessione = mysql_connect($this->getHost(), $this->getUtente(), $this->getPassword()); 	     if ( $connessione ) { 				 		 	}else {   		       ErroreMessaggio('connessione');		 		 	} 	   }      	 	protected function Connessione_database(){            if ( mysql_select_db($this->getDb(),$connessione) ) { 			  			  			 return true; 			  		 }else { 			  		   ErroreMessaggio('connessione_database');		 		    		   return false;  			  			  		 }  	}    	 	 	       public function __construct ($host,$user,$pass,$dbsp) { 		      			     $this->settaHost($host);    				 $this->settaUtente($user);     			 $this->settaPassword($pass);     			 $this->settadb($dbsp); 				 $this->DatiConnessione(); 				 return $this->getErrorMsg(); 		   	  } 	 	 	 	 	 }

    che non fa altro che verificare gli errori e connettere al database tramite l'istanziamento finale dell'ogggetto:

    $open_connessione = new estendiMysql('localhost','root','','stopdebiti');

    -------

    infine nell'index viene richiamato tramite un include_once("database.php"); lo script in questione con dentro i dati sopra indicati..e quindi la connessione parte in automatico..

    ORA METTIAMO CASO IO SIA SULLA PAGINA PER LA REGISTRAZIONE ho bisogno di estendere la classe con una classe ben definita per la registrazione per effettuare quest'ultima..in maniera identica nel caso mi trovassi nella pagina di login.


    Dunque,se io però estendo la classe di connessione al database con un altra, se io istanzio un oggetto relativamente alla superclasse il costruttore partità una volta sola mandando in entrata i dati di login o registrazione, e dunque COME FACCIO A FAR CONNETTERE COME SOPRA IL DATABASE E DOPO FAR PARTIRE A SECONDA DELLA PAGINA I DATI RELATIVI ALLA REGISTRAZIONE O LOGIN?

    mi consigliate, dopo alcune deduzioni, di istanziare un oggetto estendiMysql fuori dalla classe e poi istanziare un secondo oggetto con la classe estesa per il login o registrazione, o creare un oggetto direttamente dalla classe?!

    ES:

    class Registrazione {




    public function __construct() {

    print "registrazione partita";

    }


    public function creaConnessione() {

    $this->connect_now = new estendiMysql('localhost','root','','stopdebiti');


    }

    }

    in modo tale che si crei un oggetto una volta che viene inclusa la classe di registrazione..

    spero di essere stato chiaro anche se ho i miei dubbi


    VI STIMO!


  2. #2
    tutta la classe di connessione attuale:


    // definizione della classe astratta
    class ConnessioneMySQL {

    protected $Utente;
    protected $Password;
    protected $Host;
    protected $database;
    protected $connessione;
    private $err;
    public $errorMsgs = array(
    'connessione' => 'connessione non avvenuta',
    'connessione_database' => 'database non trovato o non selezionato correttamente',

    );


    protected function getErrorMsg() {
    if($this->err != '') {
    print $this->err;
    return false;
    }else {

    print "nessun errore rilevato";


    }
    }

    protected function ErroreMessaggio($campo) {
    if($this->errorMsgs[$campo]) {
    $this->err .= "

    " . $this->errorMsgs[$campo] . "</p>";
    }

    }


    protected function settaUtente($user) {

    $this->Utente = $user;

    }

    protected function settaPassword($password) {

    $this->Password = $password;

    }

    protected function settaHost($host) {

    $this->Host = $host;

    }

    protected function settadb($db) {

    $this->database = $db;

    }

    protected function getUtente() {

    return ($this->Utente);

    }

    protected function getPassword() {

    return ($this->Password);

    }

    protected function getHost() {

    return ($this->Host);

    }

    protected function getDb() {

    return ($this->database);

    }

    }


    class estendiMysql extends ConnessioneMySQL {



    protected function DatiConnessione(){

    $connessione = mysql_connect($this->getHost(), $this->getUtente(), $this->getPassword());

    if ( $connessione ) {


    }else {

    ErroreMessaggio('connessione');

    }

    }


    protected function Connessione_database(){


    if ( mysql_select_db($this->getDb(),$connessione) ) {


    return true;

    }else {

    ErroreMessaggio('connessione_database');

    return false;



    }

    }




    public function __construct ($host,$user,$pass,$dbsp) {

    $this->settaHost($host);
    $this->settaUtente($user);
    $this->settaPassword($pass);
    $this->settadb($dbsp);
    $this->DatiConnessione();
    return $this->getErrorMsg();

    }





    }


    $open_connessione = new estendiMysql('localhost','root','','stopdebiti');

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.