Creazione di un'area di accesso riservato
Introduzione
Sulla scorta del Tip Una semplice area di accesso riservato senza DB vediamo in questo più completo Articolo come implementare un reale servizio di protezione di un'area del nostro Sito. In questo caso utilizzeremo un database, per consentire non più ad un solo utente statico, ma ad una serie di utenti registrati, di usufruire di un servizio.
La pagina di Login: login.asp
La logica dell'Applicazione è praticamente identica a quella seguita nel Tip citato in precedenza, solo che si fa riferimento al database database.mdb ed in particolare alla tabella che chiameremo utenti, la quale avrà una serie di campi a scelta e secondo le esigenze dello sviluppatore, tra cui username e password.
Si crei la pagina login.asp, la quale conterrà sia il modulo che il codice Asp per effettuare la connessione alla propria area privata con proprio account-utente; di seguito il codice:
<%@LANGUAGE = JScript%> <% var azione = new String(Request.QueryString("azione")); %> <html> <head> <title>Login</title> </head> <body> <% if (azione == "OK") { var username = new String(Request.Form("username")); var password = new String(Request.Form("password")); var username2 = username.replace(/'/g,"''"); var password2 = password.replace(/'/g,"''"); var Cn = new ActiveXObject("ADODB.Connection"); Cn.Open("driver={Microsoft Access Driver (*.mdb)}; dbq=" + Server.MapPath("database.mdb")); var Sql = "SELECT * FROM utenti WHERE username = '" + username2 + "' AND password = '" + password2 + "'"; var EseguiLogin = Cn.Execute(Sql); if (EseguiLogin.EOF) { Cn.Close(); Response.Write("ACCESSO NEGATO"); Response.End; } else { Cn.Close(); Session("username") = username; with (Response) { Write("<p align='center'>"); Write("Benvenuto " + username + "!<br><br>"); Write("Clicca <a href='areaprivata.asp'>qui</a> per entrare!"); Write("</p>"); } } } else { %> <p align="center"> <form method="post" action="login.asp?azione=OK"> Username <input type="text" name="username"> Password <input type="password" name="password"> <input type="submit" value="Login"> </form> </p> <% } %> </body> </html>
La logica seguita è molto semplice: implementiamo la variabile di tipo QueryString azione per controllare lo stato dell'Applicazione, ovvero se l'utente ha eseguito la procedura di login o meno, nel cui caso visualizzerà il modulo. In seguito recuperiamo Username e Password dal modulo e le confrontiamo nel database grazie alla Query
SELECT * FROM utenti WHERE
username = '" + username2 + "' AND password = '" + password2 + "'
cercando l'uguaglianza dei capi username e password all'interno dello stesso record. Se l'operazione è andata a buon fine creiamo una sessione a suo nome
Session("username") = username;
altrimenti neghiamo l'accesso.
Le pagine private
Tenendo sempre come riferimento il Tip citato all'inizio dell'Articolo, vediamo come dovranno apparire le pagine private:
<%@LANGUAGE = JScript%>
<%
if (Session("username") == null)
{
Response.Write("ACCESSO NEGATO");
Response.End;
}
else
{
/*
Ci connettiamo al database e, a seconda dell'Applicazione per cui ci serviamo
di un'area di accesso riservato, recuperiamo i dati dell'utente loggato basandoci
sulla sessione che ha generato, ad esempio:
var Sql = "SELECT * FROM una_tabella WHERE
username = '" + Session("username") + "'";
*/
%>
<html>
<head>
<title>Login</title>
</head>
<body>
<p align="center">AREA PRIVATA</p>
</body>
</html>
<%
}
%>
La pagina di Logout: logout.asp
Per effettuare il Logout sarà sufficiente creare un link verso il file logout.asp che conterrà il seguente codice:
<%@LANGUAGE = JScript%> <% Session.Abandon(); Response.Write("<p align="center">ARRIVEDERCI</p>"); %>
Autore: Luca Ruggiero
- AutoCAD
Corso base del noto software per il disegno geometrico professionale. - Dreamweaver MX
Corso completo su Dreamweaver che spiega come utilizzare il programma. - Flash MX e Action Script
Corso di programmazione ActionScript per rendere interattivi i filmati Flash. - Javascript e DHTML
Lo scripting lato client con Javascript adatto a qualsiasi livello di esperienza. - MySQL
Corso completo sul famoso DBMS open-source. - SQL e Database
Corso completo di guida al linguaggio SQL e ricco di esempi pratici. - ASP.Net
Realizzazione di applicazioni Web con la nuova tecnologia di casa Microsoft. - Front Page
Corso completo sul noto editor HTML della Microsoft. - Linux
Sistema operativo open-source, completamente gratuito e potente. - CSS e XHTML
Web Design ed Accessibilità secondo il W3C.