Tu hai postato solo il form, la connessione al database e una richiesta al db per verificare se la combinazione username/password esista nel database.
Ho dato un occhiata al tuo codice ma ho preferito metterne giù uno mio,
nel mio ho diviso il login in fasi che vengono richiamate tramite richieste post inviate in hidden dal form stesso.
Ho omesso di proposito l'apertura e la chiusura del database ma ti ho indicato dove inserirla.
Dopo dovrai utilizzare le sessioni create con questo script per permettere ( se è settata la sessione) o non permettere ( se la sessione non esiste) la visualizzazione della pagina.
Codice PHP:
<? $faselogin = $_POST[fase];?>
<? if(empty($faselogin)) : // IL FORM?>
<form id="form1" name="form1" method="post" action="">
<label>Nome Utente</label>
<input name="username" type="text" value="" placeholder="nome utente"/>
<label>Password</label>
<input name="password" type="password" value="" placeholder="password"/>
<input type="hidden" name="fase" value="2" />
<input type="submit" name="button" id="button" value="Login"/>
</form>
<? elseif ($faselogin = 2) : // CONTROLLO I DATI E CREO LA SESSIONE?>
<? // QUI CI VA L'APERTURA DEL DATABASE ?>
<? //APRO LA SESSIONE
@session_start();
@session_regenerate_id(TRUE);
$user=htmlspecialchars( $_POST[username]);
$password=htmlspecialchars( $_POST[password]);
$query = "SELECT * FROM utenti WHERE nomeutente='$user' AND password='$password'";
$result = mysql_query($query);
if(mysql_num_rows($result)) {
//se è loggato creo la sessione
$_SESSION['username'] = $user;
$_SESSION['password'] = $password;
} else {?>
[b]LOGIN ERRATO[/b]
Spiacente ma hai inserito un nome utente o password errati</a></p>
<?
exit;
}
?>
[b]ACCESSO EFFETTUATO[/b]
<? endif;?>
Spero ti sia utile, ciao