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");
mysql_select_db($db_name,$connection) or die("Impossibile aprire il database. \n");
/*interroghiamo il database con i dati passati dall'utente*/
$username=$_POST['utente'];
echo $utente;
echo "
";
$sql="SELECT * FROM auth_utenti WHERE username='$username' ";
echo $sql;
echo "
";
$sql_result=mysql_query($sql,$connection) or die("Query non valida: " . mysql_error());
echo $sql_result;
echo "
";
if ($Record = mysql_fetch_array($sql_result)) {
echo "si";
//ripuliamo i valori rcuperati
$nome = ($Record["utente"]);
}
/*se abbiamo trovato l'utente recuperiamo dal database la password codificata corrispondente*/
$numero_records=mysql_affected_rows($sql_result);
echo $numero_records;
echo "
";
if($numero_records == 1)
{
$ValoriRiga =mysql_fetch_array($sql_result);
$pwdDB = $ValoriRiga["password"];
echo $pwdDB;
/*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
}
?>
Questo è lo script totale della pagina login php.
Dovrebbe fare questo:
Se la pagina ha i dati passati via post, cerca l'utente, controlla la password se è la stessa.
generaHash fa questo:
/*questa funzione può generare nuovi salt casuali se il secondo parametro viene omesso,
oppure recuperare il salt dalla password memorizzata nel DB*/
a video mi stampa questo se passo dati via post:
SELECT * FROM auth_utenti WHERE username='miologin'
Resource id #5
si
< indietro
Area Accesso riservata
Nome utente o password non corretti
P.S.Grazie dell'aiuto