Ciao,
per il momento ho eliminato l'md5 perchè mi incartavo, ho risolto così poi mi riprometto di inserirlo, grazie per i tuoi consigli.

Una domanda se eventualmente volessi inviare ad una pagina di errore specifica che creo io invece di far apparire php come potrei fare? Faccio un semplice un header();
Ciao e grazie

Codice PHP:
<?php
//Richiamo il collegamento al db
require('db.php');
//avvio o continuo la sessione
session_start();
//Verifico la password l' username
$username=$_POST['username'];
$password=$_POST['password'];
//Controllo se l' username e la password non sono vuoti
if((strlen($username) == 0) and (strlen($password) == 0)){
 echo(
"Per favore inserisci un'username e una password! ".mysql_error());
}else{
//Imposto la query
$querySQL ="SELECT username, password FROM utenti WHERE username = '".$username."' and '".$password."'";
//Eseguo la query ed effettuo un controllo
$result mysql_query($querySQL) or die(mysql_error());
//Estrapolo i dati dalla query e controllo se la query è andata a buon fine 
if(mysql_num_rows($result) == ){ 
//Passo l'utente alla sessione
$_SESSION['username'] = $username
$_SESSION['password'] = $password
//Effettuo il redirect alla pagina riservata
header("Location: riservata.php"); 
exit();    
     
} else {   
die (
"Username e/o password errati 
[url='login.php']Torna indietro[/url]"
); 
}  
}              
//Libero la memoria
mysql_free_result($result);
//Effettuo il Logout
if(@$_GET['logout'] == 1){ 
//Desetto tutte le variabili di sessione    
$_SESSION = array(); 
//Distruggo le sessioni
session_destroy(); 
}
//Chiudo la connessione a mysql
mysql_close(); 

?>