Salve ragazzi, ho creato una classe (Database):
Codice PHP:
<?php
class Database
{
/*
* Variabile locale alla struttura class database
*/
private $db_host = ''; // Host del server
private $db_user = ''; // Db Username
private $db_pass = ''; // Db Password
private $db_name = ''; // Db Name
private $result; // Risultati restituiti dalla query
/*
* Metodo per la connessione al database
*/
public function connect()
{
$db_conn = mysql_connect($this->db_host, $this->db_user, $this->db_pass) or die ("Errore nella connessione al db: " . mysql_error());
if ($db_conn)
{
$db_select = mysql_select_db($this->db_name,$db_conn) or die ("Errore nella selezione del db: " . mysql_error());
}
if ($db_select)
{
return true;
}
}
public function query($query)
{
$this->result = mysql_query($query);
if ($this->result != 0) {
return 1;
}
else {
return 0;
}
}
/*
* numRows
*/
public function numRows()
{
return mysql_num_rows($this->result);
}
/*
* Fetches an array row
*/
public function fetchRow()
{
return mysql_fetch_array($this->result);
}
/*
* Check user on the database
*/
public function checkUser($query)
{
...
}
}
?>
Funziona perfettamente, adesso dovrei però creare un metodo checkUser che mi permetta di controllare se un utente è registrato o meno sul db.
Ho questo file che però funziona in modo iterativo:
Codice PHP:
<?php
// Includo il file class.php e richiamo il metodo connect()
include_once("../class.php");
$db = new Database;
$db->connect();
// Ricavo i valori inviati tramite form POST
$username = mysql_real_escape_string($_POST['username']);
$password = md5($_POST['password']);
// Controllo se nel database è presente username e password
$query = "SELECT * FROM admin WHERE username = '".$username."' AND password = '".$password."'";
$db->query($query) or die ("Errore query: " . mysql_error());
$num_rows = $db->numRows();
$row = $db->fetchRow($db->query($query));
if ($num_rows != 1)
{
// Ritrono alla pagina di login con un parametro
header("Location: login.php?error=1");
exit();
} else {
// Inizalizzo la sessione
session_start();
// Includo le funzioni e richiamo quella che mi permette di generare il codice alfanumerico di 32 caratteri
include_once("functions.php");
// Includo la key in una variabile $logkey
$logkey = SessioneCasuale();
// Modifico il codice ogni volta che effettuo il login
$update = "UPDATE admin SET logkey = '$logkey' WHERE username = '$username'";
$db->query($update) or die ("Errore update query: " . mysql_error());
// Salvo in sessione il valore alfanumerico
$_SESSION['logkey'] = $logkey;
// Chiudo la connessione al database
mysql_close($db->connect());
header("Location: panel.php");
}
?>
Dovrei rendere tutto come metodo della classe "Database", qualcuno può aiutarmi?
Grazie anticipatamente , gaten