ciao a tutt, sto scrivendo il codice php per la gestione di un db con mysql.
La tabella e' composta nel seguente modo:
$query = "CREATE TABLE Users (
id_usr INT (5) UNSIGNED NOT NULL AUTO_INCREMENT,
username VARCHAR (16) NOT NULL,
password VARCHAR (16) NOT NULL,
fullname VARCHAR (24) NOT NULL,
email VARCHAR (36) NOT NULL,
administrator ENUM ('0','1') NOT NULL,
enabled ENUM ('0','1') NOT NULL,
PRIMARY KEY (id_usr)
)"
Nello script del login, non riesco a capire cosa non vada nel codice seguente:
$query="SELECT username, password, enabled FROM Users WHERE username='$username' AND password ='$password' AND enabled ='0'";
$result =mysql_query ($query, $db);
if ($num_righe = mysql_num_rows($result))
{
echo ("Spiacente, in attesa dell'autorizzazione dell'admin. Riprova piu' tardi.
");
echo ("<a href =\"home.php\">Torna alla home page</a>
");
}
else
Header ("Location: login_utente_succ.php");
(ho tagliato un pezzo di codice ovviamente, non badate alle parentesi mancanti)
Il problema e' che non riesco a entrare nel primo If.
Se ad esempio inserisco nel db un utente con lo username, la pwd e il valore enabled impostato a 0 (come nella query), il codice non mi stampa il messaggio "spiacente , in attesa dell'autorizzazione etc...".
Ho sbagliato qualcosa nella query? Percaso i valori ENUM si confrontano in modo diverso dal ='0'?
p.s. altra cosa, per gestire un valore booleano ho letto che e' molto meglio usare un ENUM invece di BOOL appunto . siete d'accordo?
ciao e grazie