Codice PHP:
<?php
//includiamo il file delle funzioni
require ('funzioni.inc');
require ('config.php');
/*inizializziamo o riprendiamo la sessione*/
session_start();
/*se non è stato fatto il submit del form*/
if($_SERVER['REQUEST_METHOD'] != 'POST') {
?>
<html>
<head>
<title>Login prova</title>
</head>
<body>
<table>
<tr>
<td>Area di accesso riservata</td>
</tr>
<tr>
<td>
<form action="<?php echo $_SERVER['PHP_SELF']; ?> " method="POST" enctype="application/x-www-form-urlencode">
<table width="100%">
<tr>
<td>Nome Utente:</td>
<td><input type="text" name="utente"></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td><input type="submit" value="login"></td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</body>
</html>
<?php
}
/*se la pagina riceve riceve i dati dal form di login controlla nel database per cercare l'utente*/
else {
$connection=mysql_connect($db_host,$db_user,$db_password) or die("impossibile connettersi al database sql.\n");
$db=mysql_select_db($db_name,$connection) or die("Impossibile aprire il database. \n");
echo "connection: ".$connection;
echo "
";
echo "db: ".$db;
echo "
";
/*interroghiamo il database con i dati passati dall'utente*/
$username=$_POST['utente'];
echo "username: ".$username;
echo "
";
$sql_verifica="SELECT * FROM auth_utenti WHERE username='$username' ";
echo "sql_verifica: ".$sql_verifica;
echo "
";
$sql_result=mysql_query($sql_verifica,$connection) or die("Query non valida: " . mysql_error());
echo "sql_result: ".$sql_result;
echo "
";
if ($Record = mysql_fetch_array($sql_result)) {
echo "dentro if";
echo "
";
//ripuliamo i valori rcuperati
$nome = ($Record["utente"]);
echo "nome: ".$nome;
echo "
";
}
/*se abbiamo trovato l'utente recuperiamo dal database la password codificata corrispondente*/
$numero_records=mysql_affected_rows($sql_result);
echo "numero_records: ".$numero_records;
echo "
";
if($numero_records == 1)
{
$ValoriRiga =mysql_fetch_array($sql_result);
$pwdDB = $ValoriRiga["password"];
echo "$pwdDB: ".$pwdDB;
echo "
";
/*generiamo l'hash e paragoniamol a quello del database*/
if (generaHash($_POST['password'],$pwdDB)===$pwdDB)
{
$_SESSION['nome_utente']=$ValoriRiga["nome"];
/*Se l'utente viene identificato il browser viene reindirizzato alla pagina protetta. per usare l'header ("location")
è importante che non sia ancora stato inviato nessun output al browser*/
$_SESSION['nome_utente']=$_POST['utente'];
$_SESSION['IP_utente']=$_SERVER['REMOTE_ADDR'];
header("Location:http//".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/index.php");
exit;
}
}
//chiudiamo la connessione al Database
mysql_free_result($sql_result);
mysql_close($connection);
/*parte la visualizzazione in caso di login errato*/
?>
<html>
<head>
<title>
Login Prova
</title>
<body>
<table>
<tr>
<td>Area Accesso riservata</td>
</tr>
<tr>
<td> Nome utente o password non corretti</td>
[url="javascript:history.go(-1)"]< indietro[/url]
</tr>
</table>
</body>
</head>
</html>
<?php
}
?>
Faccio l'echo di tutte le variabili e vedo questo a video, passando miologin e pwd:
codice:
connection: Resource id #4
db: 1
username: miologin
sql_verifica: SELECT * FROM auth_utenti WHERE username='miologin'
sql_result: Resource id #5
dentro if
nome:
numero_records:
< indietro
Area Accesso riservata
Nome utente o password non corretti