Ragazzi ho un problemino.
Premetto che in quanto a programmazione ad oggetti sono proprio all'inizio.
Ho creato una classe
Codice PHP:
<?php
class DbController
{
public function ApriConnessione()
{
// definisco le variabili d'accesso al db
$dbhost = 'localhost';
$dbusername = 'root';
$dbpassword = 'pippo';
$dbname = 'prova';
$db = mysql_connect($dbhost, $dbusername, $dbpassword);
if (!$db)
die ("Errore nella connessione. Verificare i parametri d'accesso");
mysql_select_db($dbname, $db)
or die ("Errore nella selezione del database. Verificare i parametri d'accesso");
return $db;
}
}
?>
Quindi la richiamo nella mia pagina principale
Codice PHP:
<?php
// Includo il Controller del database
include(ADMIN_URL_CONTROLLERS . 'DbController.php');
$conn = new DbController();
$db = $conn->ApriConnessione();
switch($_GET['option'])
{
case 'login':
require_once(ADMIN_URL_VIEWS . 'login/login.php');
break;
case '404':
require_once(ADMIN_URL_VIEWS . 'error/error.php');
break;
default:
require_once(ADMIN_URL_VIEWS . 'index/index.php');
break;
}
?>
Nella pagina login.php ho questo:
Codice PHP:
<?php
// Includo il Controller della pagina
include(ADMIN_URL_CONTROLLERS . 'LoginController.php');
$var = new LoginController();
// Includo gli header della pagina
include(ADMIN_URL_VIEWS . 'header.php');
?>
<div id="login">
<p class="errore"><?php if(isset($_POST['invia'])) $var->AutorizzaUtente(mysql_escape_string($_POST['username']), md5($_POST['password']))?></p>
<form action="" method="post">
<fieldset>
<legend>Login</legend>
Username:
<input type="text" name="username" size="25" />
Password:
<input type="password" name="password" size="25" />
<input type="submit" name="annulla" value="Annulla" /><input type="submit" name="invia" value="Invia" />
</fieldset>
</form>
</div>
e nel LoginController.php quest'altro:
Codice PHP:
<?php
class LoginController
{
public function TitoloPagina()
{
print 'Login';
}
public function AutorizzaUtente($username, $password)
{
$query = "SELECT * FROM prova_cpanel WHERE username = '$username' AND password = '$password'";
$result = mysql_query($query);
if(mysql_num_rows($result) == 1)
{
$row = mysql_fetch_array($result);
print 'ok';
$_SESSION['prova_auth'] = TRUE;
$_SESSION['prova_userid'] = $row['id'];
$_SESSION['prova_username'] = $username;
$_SESSION['prova_last_access'] = $row['last_access'];
$query = "UPDATE prova_cpanel SET ip = '".$_SERVER['REMOTE_ADDR']."', last_access = '".time()."' WHERE id = ".$_SESSION['tuttannuncitalia_userid']."";
mysql_query($query);
header("Location: index.php");
exit();
}
else print 'Errore! Username o password errate';
}
}
?>
Insomma la cosa sembrerebbe contorta ma non lo è...sto usando una sorta di framework, fatto da me, per avvicinarmi allo Zend Framework e magari un giorno usarlo con maggiore facilità.
Il problema sta nel fatto che non riesco a creare una connessione al database.
Quando provo a compilare il form della pagina login.php, la funzione AutorizzaUtente() non va, mi restituisce solo l'errore.
Se invece inserisco i dati corretti non appare nulla!