Come gestire gli utenti con Access e il linguaggio asp
In questo tutorial vedremo come realizzare un sistema più articolato per la gestione delle aree private del sito; più precisamente vedremo come realizzare un sistema per la registrazione el'autenticazione degli utenti, in modo da consentire ai soli utenti registrati l'accesso ad alcune aree del nostro sito.
Precisamente, nel nostro articolo vedremo come è possibile realizzare da zero:
Per prima cosa apriamo MS Access e creiamo un DB vuoto chiamato "utenti_sito.mdb"; poi creiamo una tabella che chiamiamo UTENTI con una struttura come da immagine:
Il campo "ID" è contatore, "email", "user" e "pass" sono testo, mentre "stato" è un campo tipo Si/No.
Ora che abbiamo il nostro DB possiamo iniziare a lavorare con il codice... per prima cosa buttiamo giù il codice del sistema di registrazione!
Aprite il bocco note e scrivete come di seguito:
Il codice, come al solito, è ampiamente comentato e non dovrebbe esere un problema per Voi capirne il funzionamnto ed apportare le modifiche che eventualmente riterrete opportune.
L'unica cosa che voglio farvi notare è che di default abbiamo impostato su False il campo "stato" che è quello che ci consente di verificare se l'utente è abilitato (True) o meno (False) all'accesso all'area privata.
Una volta registrato, quindi, l'utente NON è ancora abilitato a navigare nell'area protetta (il campo "stato" è settato su False) fino a quando l'amministratore non lo avrà confermato (settando in True il campo "stato").
Vediamo quindi come realizzare il nostro piccolo pannello di amministrazione per la gestione delle registrazioni. Ecco il codice:
fonte: http://www.mrwebmaster.it/asp/articoli/sistema-gestione-utenti-acceso-aree-protette-1a-parte_177.html
Precisamente, nel nostro articolo vedremo come è possibile realizzare da zero:
- un pannello per la registrazione di nuovi utenti
- un sistema di login e di gestione dei privilegi dei vari utenti
- un sitema per l'amministrazione degli utenti
Per prima cosa apriamo MS Access e creiamo un DB vuoto chiamato "utenti_sito.mdb"; poi creiamo una tabella che chiamiamo UTENTI con una struttura come da immagine:
Il campo "ID" è contatore, "email", "user" e "pass" sono testo, mentre "stato" è un campo tipo Si/No.
Ora che abbiamo il nostro DB possiamo iniziare a lavorare con il codice... per prima cosa buttiamo giù il codice del sistema di registrazione!
Aprite il bocco note e scrivete come di seguito:
<% 'Creo la variabile Action Dim Action Action = request.form("act") 'Se Action è vuoto stampo il modulo if Action = "" then %> <form method="POST"> <input type="hidden" name="act" value="salva"> <table border="0"> <tr><td>Tua Email</td><td><input type="text" name="email" size="30"></td></tr> <tr><td>Username</td><td><input type="text" name="user" size="30"></td></tr> <tr><td>Password</td><td><input type="password" name="pass" size="30"></td></tr> <tr><td colspan="2"><input type="submit" value="ISCRIVITI"></td></tr> </table> </form> <% 'Se Action ha come valore "salva"... 'Inserisco i valori del modulo nel DB elseif Action = "salva" then 'Apro la connessione al DB Dim Conn Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&_ Server.MapPath("utenti_sito.mdb") 'Aggiungo un nuovo record al DB Dim Rs Set Rs = Server.CreateObject("ADODB.Recordset") Rs.Open "UTENTI", conn, 1, 3 Rs.AddNew() Rs("email") = request.form("email") Rs("user") = request.form("user") Rs("pass") = request.form("pass") Rs("stato") = False Rs.Update 'chiudo recordset e connessione Rs.Close set Rs = Nothing Conn.Close set Conn = Nothing 'Messaggio a video di conferma response.write "Registrazione avvenuta con successo" response.end end if %>Salvate come "registrati.asp" e caricate il file nel vostro server. Lanciatelo e testatelo.
Il codice, come al solito, è ampiamente comentato e non dovrebbe esere un problema per Voi capirne il funzionamnto ed apportare le modifiche che eventualmente riterrete opportune.
L'unica cosa che voglio farvi notare è che di default abbiamo impostato su False il campo "stato" che è quello che ci consente di verificare se l'utente è abilitato (True) o meno (False) all'accesso all'area privata.
Una volta registrato, quindi, l'utente NON è ancora abilitato a navigare nell'area protetta (il campo "stato" è settato su False) fino a quando l'amministratore non lo avrà confermato (settando in True il campo "stato").
Vediamo quindi come realizzare il nostro piccolo pannello di amministrazione per la gestione delle registrazioni. Ecco il codice:
<% 'Imposto una password per accedere al file... 'ricordatevi di cambiarla :-) Dim AdminPass AdminPass = "123456" 'Recupero il valore della querystring pass... Dim MyPass MyPass = request.querystring("pass") 'Verifico che MyPass sia uguale ad AdminPass 'In caso contrario stampo un errore... if NOT MyPass = AdminPass then response.write "Accesso NON autorizzato" response.end end if 'Se l'accesso è autorizzato proseguo... 'Apro la connessione al DB Dim Conn Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&_ Server.MapPath("utenti_sito.mdb") 'Creo la variabile Action Dim Action Action = request.querystring("act") if Action = "" then 'Imposto la query ed apro il recordset Dim Query, Rs Query = "select * from UTENTI order by ID desc" Set Rs = Server.CreateObject("ADODB.Recordset") Rs.Open Query, Conn, 3, 3 'Se il recordset NON è vuoto... if NOT rs.EOF Then response.write "<table border=""1"">" 'Imposto un ciclo do While per scorrere il recordset Do While NOT Rs.EOF response.write "<tr><td>" & Rs("user") & "</td>" response.write "<td><a href=""admin.asp?pass=" & MyPass & "&act=attiva&id=" & Rs("id") & """>Attiva</a> - " response.write "<a href=""admin.asp?pass=" & MyPass & "&act=disattiva&id=" & Rs("id") & """>Disattiva</a></td></tr>" Rs.MoveNext Loop response.write "</table>" 'Se il recordset è vuoto stampo un mesaggio else response.write "Nessun utente iscritto" response.end end if 'chiudo il recordset Rs.Close set Rs = Nothing 'Se action è su attiva... elseif Action = "attiva" then Conn.Execute "update UTENTI set stato = True where id = " & request("id") 'Se invece è su disattiva elseif Action = "disattiva" then Conn.Execute "update UTENTI set stato = False where id = " & request("id") end if 'Chiudo la connessione al DB Conn.Close Set Conn= Nothing %>Salvo tutto come "admin.asp", carico sul server e testo lanciando il file in questo modo:
http://www.miosito.com/admin.asp?pass=123456Relativamente allo script "admin.asp" credo non ci sia proprio poco da dire:
- abbiamo aperto la connessione al nostro DB poi abbiamo costruito una serie di condizioni
- se Action è vuoto stampo a video tutti i record presenti nel DB accompagnati dai relativi ink per attivazione/disattivazione;
- se invece Action ha valore "attiva" o "disattiva" eseguo una query che non fa altro che modificare il valore del campo "stato" del DB da False a True e viceversa;
- alla fine abbiamo chiuso, come al solito, la nostra connessione al DB per liberare un po' di risorse;
fonte: http://www.mrwebmaster.it/asp/articoli/sistema-gestione-utenti-acceso-aree-protette-1a-parte_177.html
Commenti
Posta un commento