Leggere variabili esterne ad una classe in php 5.2

ciccioroky

Nuovo Utente
31 Lug 2012
25
0
1
Ciao a tutti,
sono nuovo del mondo PHP e mi stavo cimentando nello sviluppo di un'app.
La mia situazione è questa: ho un form in cui inserisco host, user, password e nome database.
Con il metodo post apro una nuova pagina PHP e recupero i valori del form.
Fino a qui ci siamo.
dopo aver recuperato i valori creo una classe che si connette a MySQL di questo tipo:

PHP:
<?php
class MysqlClass
{
  // parametri per la connessione al database
  private $nomehost = "localhost";     
  private $nomeuser = "username";          
  private $password = "password"; 
          
  // controllo sulle connessioni attive
  private $attiva = false;
 
  // funzione per la connessione a MySQL
  public function connetti()
  {
   if(!$this->attiva)
   {
    $connessione = mysql_connect($this->nomehost,$this->nomeuser,$this->password);
       }else{
        return true;
       }
    }
}       
?>

Lì dove ci sono i parametri per la connessione al database non devo avere i dati preconfezionati come nell'esempio ma devo avere i valori recuperati con il post.
Il recupero l'ho fatto così:
PHP:
$host = $_POST['host'];
   $username_DB = $_POST['username_DB'];
   $password_DB = $_POST['password_DB'];

è possibile quindi in una classe recuperare con il metodo post i valori di variabili esterne alla classe?
Utilizzo il PHP 5.2

Ciao a tutti e grazie!
 
Ciao, puoi utilizzare il metodo __construct() che viene invocato non appena la classe viene instanziata
PHP:
class MysqlClass {

    private $nomehost = false;

    public function __construct() {
        $this->nomehost = $_POST['nomehost'];       
    }
}
dovrai verificare che sia stata veramente settata prima di utilizzarla
 
OK provo a spiegarti il codice giusto per avere conferma di aver capito:
PHP:
private $nomehost = false;

praticamente mi controlla se il campo nel form è riempito correttamente.
Se non è riempita correttamente mi restituisce l'errore altrimenti
PHP:
public function __construct() {
        $this->nomehost = $_POST['nomehost'];       
    }
mi recupera il valore e la variabile $nomehost avrà il valore che ho scritto nel form.

Ho capito bene?
 
scusami altra cosa:
posso fare così per recuperare i valori di tutte e tre le variabili giusto?

PHP:
  // parametri per la connessione al database
  private $host = false;
  private $username_DB = false;
  private $password_DB = false;

    public function __construct() {
        $this->host = $_POST['host'];  
        $this->username_DB = $_POST['username_DB']; 
        $this->password_DB = $_POST['password_DB']; 
    }
 
si, ma se non gli passi il valore in post le variabili resteranno false e quando ti connetterai lo script andra in errore, serve un controllo
PHP:
if($this->host !== false) {
 // mi connetto
}else{
 // non ho il parametro non provo nemmeno a connettermi
}
detto questo abbandona subito l'estensione mysql e passa a mysqli
 
Non parlo del database ma delle funzioni php che interagiscono con il db
ti riporto quanto scritto sul manuale ufficiale
Warning

This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include:

mysqli_connect()
 

Discussioni simili