Momento di lapsus... Controlli su user e pwd e campo booleano...

Emix

Utente Attivo
15 Feb 2010
596
0
16
Salve a tutti,
sto finendo di fare lo script per un login completo.. Ma ora sono davanti ad un lapsus incredibile... Io inserisco user e pwd nella pagina di login, mi riporta alla pagina di creazione sessioni, ammesso che l'utente sia stato riconosciuto. Ho inserito un campo nella tabella utenti di tipo booleano "active" settato a 0 di default, se clicco sul link che mi arriva per email il campo active diventa 1. Ora nello script di login eseguo prima la query per cercare l'utente, ma dopo quella non capisco come andare a fargli cercare il campo se è 0 o 1 di quel relativo utente... Vi copio lo spezzone di codice...

PHP:
$query=mysql_query("SELECT * FROM utenti WHERE user='$user' and pwd='$pwd'");
    //verifico che esista un utente con tale username e tale password
    $esiste=mysql_num_rows($query);
    //se $esiste == 0 non cè
    if($esiste > 0){//esiste
        //estraggo usn e pass
        $rows=mysql_fetch_array($query);
	    $utente=1;
//QUI ANDREBBE IL CONTROLLO SUL L'ATTIVO O MENO
        //e li passo in sessione
        $_SESSION['user']=$rows['user'];
        $_SESSION['pwd']=$rows['pwd'];
        //accedo alla/alle pag riservate
        @header('Location:ready.php');
    }else{ //non esiste
	// controlla che siano di un amministratore
    $queryadmin = mysql_query("SELECT * FROM admin WHERE user='$user' AND pwd='$pwd'");
    $esisteadmin=mysql_num_rows($queryadmin);
    //se $esiste == 0 non cè

Grazie per l'eventuale aiuto...
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
PHP:
<?php
$user = mysql_real_escape_string($user);
$pwd  = mysql_real_escape_string($pwd);

$sql = 'SELECT * FROM utenti WHERE user = \'%s\' AND pwd = \'%s\'';
$sql = sprintf($sql, $user, $pwd);

$query = mysql_query($sql) or die(mysql_error());

if (mysql_num_rows($query) > 0) {
    $user = mysql_fetch_assoc($query);

    if ($user['active']) {
        $_SESSION['user'] = $user['user'];
        $_SESSION['pwd']  = $user['pwd'];

        header('Location: ready.php');
        die();
    }

    die('Utente non attivo.');
} else {
    $sql = 'SELECT * FROM admin WHERE user = \'%s\' AND pwd = \'%s\'';
    $sql = sprintf($sql, $user, $pwd);

    $query = mysql_query($sql) or die(mysql_error());

    // ...
}
?>
Non capisco però perché crei due tabelle, una per gli utenti e una per gli amministratori: così devi mantenere il doppio del codice. Aggiungi semplicemente un campo admin alla tabella utenti.

Inoltre, spero che tu stia criptando le password.
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
ciao e scusami se ti rispondo solo ora...

PHP:
$user = mysql_real_escape_string($user);
$pwd  = mysql_real_escape_string($pwd);

$sql = 'SELECT * FROM utenti WHERE user = \'%s\' AND pwd = \'%s\'';
$sql = sprintf($sql, $user, $pwd);

$query = mysql_query($sql) or die(mysql_error());

if (mysql_num_rows($query) > 0) {
    $user = mysql_fetch_assoc($query);

    if ($user['active']) {
        $_SESSION['user'] = $user['user'];
        $_SESSION['pwd']  = $user['pwd'];

        header('Location: ready.php');
        die();
    }

Questo è uno spezzone di codice che hai scritto.. Perdonami ma che query sono? Non ho capito come funzionano... Inoltre non si potrebbe modificare semplicemente le mie di query per inserire il controllo dell'attivazione o meno? Mi sembrava molto meno complesso...
Inoltre, no stavo cercando di capire come potevo fare per criptare le password in md5... Sai indicarmi qualcosa? o pezzi di codice non so...
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
Forse ti basta modificare la query aggiungendo il campo attivo
Codice:
SELECT * FROM utenti WHERE user='$user' and pwd='$pwd' and active = 1
se esiste ed è attivo vai avanti
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
Ok ma se poi active non è 1 ma 0 vorrei fare in modo che gli dia un messaggio diverso da quello che dice se sono incorretti user e\o pwd...
Uhm che palle cambiano sempre tutto :| mi tocchera ri studiare allora...
 
Discussioni simili
Autore Titolo Forum Risposte Data
R Obbligare all'utente un pagamento al momento della registrazione PHP 3
L 120 SMS Gratis da inviare in qualsiasi momento Vendere e Acquistare pubblicita' online 0
N creare immagini al momento Javascript 3
Frank10 Dal momento in cui compro un domino, ho anche i diritti di copyright? Leggi, Normative e Fisco 4
M Un 'applicazione in asp "il sito del momento" Classic ASP 0
C Online in quel momento Discussioni Varie 1
L [Al momento non retribuito] cerco moderatori e collaboratori per 1 sito/forum Offerte e Richieste di Lavoro e/o Collaborazione 0
L [Al momento non retribuito] cerco moderatori e collaboratori per 1 sito/forum Discussioni Varie 0
G Migliore sito di investimenti autosurf al momento ! Guadagnare col Sito 2
grottafelix In questo momento ci sono 38 utenti sul sito Classic ASP 7
K allineare controlli in un div HTML e CSS 3
M Effettuare i controlli di obbligatorietà lato server e, per quanto possibile, di tipo. PHP 0
M Controlli array PHP 0
H Controlli form jQuery 0
H [risolto] Controlli form iscrizione PHP 16
X Errore nei controlli! PHP 5
F Controlli form per Registrazione utenti PHP 9
M Problema controlli MySQL ( XOR ) MySQL 1
S Controlli variabili php PHP 11
P Miglioramento controlli su input PHP 57
O Controlli come parametri Javascript 3
S Eseguire controlli sul form delle foto PHP 17
P far sparire un tasto con i controlli PHP 1
T come mettere controlli su form di inserimento dati?? PHP 11
C controlli sulle registrazioni Sicurezza e Virus 0
Z problema con i controlli disattivati su IE 7 Javascript 2
M controlli radio button Javascript 2
E controlli su tabelle statiche Classic ASP 1
F me lo controlli per favore? PHP 0
Q VB6 Caricamento spezzettato matrici di controlli Programmazione 0
A controlli js Javascript 1
S Licenze?? controlli?? Flash 1
H controlli per la data Javascript 1

Discussioni simili