Newsgroup: it.comp.www.php
Titolo: Check utente registrato

Sarà anche una stronz### ma, presa una tabella, non riesco a fare il
check per vedere se l'utente è autorizzato. Teoricamente mi sembra
semplice ma forse c'è qualcosa che mi sfugge...
Riassumo brevemente:
Tabella strutturata più o meno così:
 id | user | password | altri...campi | active |
volvo estrarre gli utenti che sono abilitati con User, Password e
Active (Active è un campo char di lunghezza 1 con dentro una "s" o una
"n" a seconda che l'utente sia autorizzato o meno). Avevo pensato
quindi a una query del genere:
$query = "SELECT user FROM utenti WHERE user='$username' AND
password='$password' AND active='s'";
I dati arrivano da una semplice login in html:
<form  action="
http://riccardo/xxxxxx/parte_pubblica/index.php
"
method="post"  target="_blank">
Username<br>
<input id="casella" name="username" type="text"><br>
Password<br>
<input id="casella" name="password" type="text"><br>
<input id="pulsante" name="invia" type="submit" value="login">
</form>
E lo script è questo sotto
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione al database");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database");
$query = "SELECT user FROM utenti WHERE user='$username' AND
password='$password' AND active='s'";
$result = mysql_query($query, $db);
$row = mysql_fetch_array($result);
echo "$query <br>";
echo "<br>Result: $result <br>";
echo "Rows: $row <br>";
if ($row>0) {
  echo "AUTORIZZATO";
} else {
    echo "NON AUTORIZZATO";
}
Possibile che mi scrive sempre NON AUTORIZZATO anche quando l'utente è
autorizzato (quindi il valore delle 3 AND della query è rispettato)?
-- 
La rovina del mondo sarà l'indifferenza...
...ma chi se ne fregaaa!

 password='$password' AND active='s'";
Non sono una cima ma forse non era meglio mettere un booleano 0 o 1 ??
cosi' da poter fare active='1' ??? con il carattere forse devi mettere "s"
??
scusami se non ti sono molto di aiuto...ma a me con il booleano funziona.

??
Vabbè... ma alla fine è la stessa cosa...
Utilizzo la stessa tabella per una query che mostra tutti gli utenti
abilitati e funziona benissimo...
$query_4 = "SELECT id,user,ragione_sociale,data_scad,active FROM
utenti WHERE active='s' ORDER BY user ";
Non capisco dove possa essere il problema....



La query č giusta, sei sicuro di avere campi settati con 's'?????
Sei in locale per queste prove giusto????
Esegui questa query direttamente su Mysql lato console e vedi se ti da
risultati.

 autorizzato (quindi il valore delle 3 AND della query č rispettato)?

 
[..]
da qui inserisci questo codice e dimmi cosa ti restituisce..
$result = mysql_query($query, $db);
if(mysql_num_rows($result)>0){
  echo "<pre>AUTORIZZATO\n";
  $result = mysql_fetch_array($result);
  print_r($result);
}
else{
   echo "NON AUTORIZZATO <br />$query <br />Result: $result <br />Rows: $row
<br />";
   mysql_error();
}
-- 
www.iuz-lab.info


Allora ho provato tutto quello che mi avete consigliato ma niente!!!!!
Però ho risolto **senza** capire come ho fatto e cosa stavo facendo.
Il Db una volta era su access. Poi l' portato su Excel per fare delle
modifiche veloci e di li l'ho salvato in CSV. Da phpmyadmin ho visto
che si può importare un file di testo quindi dopo aver rinominato il
csv in Txt ho fatto l'importazione. Risultato: Query eseguita con
successo... Tanto che dal file in php che serve a mostrare l'elenco
utenti non avevo problemi. Avevo problemi solo nei controlli...com
scrivevo nel post precedente...
Poi mi sono accorto di una cosa: non tutti gli utenti davano l'errore
nell'autenticazione. Quindi non era colpa della sintassi nel Php ma di
qualcos'altro...
Preso dalla disperazione sono andato a **cliccare a caso** sul
phpmyadmin fino a questa SCOPERTA: cliccando su Edit e poi su Salva
(senza toccare/modificare nulla) l'utente diventava "normale" e veniva
messo nella "lista dei buoni e funzionanti". Ho notato che, in
Phpmyadmin, la riga dell'utente non funzioante era più alta rispetto a
quella dell'utente funzionante...
Qui potete vedere un immagine del phpmyadmin con gli utenti con Id 75
e 76 non funzionanti mentre l'Id 1 e 2 sono normali e fanno la login.
http://217.171.171.42/prv/phpmyadmin.gif
Che errore d'importazione può essere?
Perchè mi ha scritto "query eseguita con successo"? (mica tanto mi
pare!!!)
