Il controllo se l'utente viene trovato o meno non si fa così
Codice PHP:
$query = "SELECT * FROM clienti WHERE utente = '$username' AND pass = '$password' ";
$ris = mysql_query($query, $connessione) or die (mysql_error());
$riga=mysql_fetch_array($ris);
/*Prelevo l’identificativo dell'utente */
$cod=$riga['utente'];
/* Effettuo il controllo */
if ($cod == NULL) $trovato = 0 ;
else $trovato = 1;
Perché così se non si trova niente mysql_fetch_array va in errore (invalid supplied argument) dato che non c'è niente di cui fare il fetch.
Il controllo va fatto in quest'altro modo
Codice PHP:
$query = "SELECT * FROM clienti WHERE utente = '$username' AND pass = '$password' ";
$ris = mysql_query($query, $connessione) or die (mysql_error());
if(mysql_num_rows($ris) > 0) //trovato un riscontro
{
$riga=mysql_fetch_array($ris);
$cod=$riga['utente'];
session_register('autorizzato');
$_SESSION["autorizzato"] = 1;
/*Registro il codice dell'utente*/
$_SESSION['cod'] = $cod;
/*Redirect alla pagina riservata*/
echo '<script language=javascript>document.location.href="pagina_riservata.php"</script>';
}
else
{
/*Username e password errati, redirect alla pagina di login*/
echo '<script language=javascript>document.location.href="login.php"</script>';
}