Siamo
una piccola associazione o qualcosa di simile ed abbiamo un
sito web costituito da una parte a disposizione di tutti ed
una parte a disposizione solo degli utenti registrati; quasti
ultimi non saranno molti per cui possiamo adoperare un normale
file txt per memorizzarli.
Questo sistema in pratica non lo adotteremo mai per motivi
di sicurezza (i dati degli utenti non sono al sicuro), ma
visto che non abbiamo ancora nozioni di database accontentiamoci.
Come
prima cosa abbiamo deciso di non usare i frame, così
la cosa sarà più complicata.
Nella pagina iniziale index.asp testeremo innanzitutto se
nell'utente connesso è presente il Cookie di registrazione;
se è presente controlleremo che user e password siano
presenti nel file utenti.txt ed in caso affermativo evidenzieremo
una frase di saluto; se manca il cookie o i dati non sono
validi visualizzeremo sia un riquadro di login, sia un link
per la registrazione alla pagina registra.asp.
Dal form di login passeremo i dati a login.asp che effettuerà
i controlli e ci restituirà l'esito.
Per gestire il ritorno dei dati alla nostra pagina da login.asp
e da registrazione.asp utilizzeremo la command line, passando
il tipo (login|newuser) e l'user-id.
Il modo migliore per gestire le cose nel corso di index.asp
è di usare una variabile Registrato posta inizialmente
a 0 e metterla ad 1 quando verifichiamo che l'utente è
registrato; se poi vogliamo distinguere se ha il cookie o
ha fatto il login o se è un nuovo utente usiamo anche
il 2 ed il 3.
Per prima cosa costruiamo una normale pagina HTML, così
possiamo studiare facilmente l'aspetto grafico e sistemarla
finché non siamo soddisfatti del risultato; poi aggiungeremo
il codice script necessario e la rinomineremo index.asp.
La pagina HTML che abbiamo costruito è Esempio1.html
ed
il codice è il seguente:
<html>
<head>
<title>IL PORTALE ITALIANO DEGLI AMANTI DELLA RICOTTA</title>
<style type="text/css">
div.Saluto { font-size: 120%;
font-weight: bold; color: red;
z-order: 0;}
div.Login { background: rgb(255,153,0);
border: solid; border-width: thin;
border-color: black; padding: 0.5em;
z-order: 1;}
</style>
</head>
<body background="sfondo1.gif" leftmargin=0
topmargin=0>
<img src="logo763.jpg" border=0>
<div class="Saluto"
style="position:absolute; top:80px; left:30px;">
bentornato Giuseppe !
</div>
<div class="Login"
style="position:absolute; top:64px; left:0px; width=25%;">
<form name="Form1" id="Form1"
method="POST" action="login.asp">
<table width=100% style="font-size:x-small;">
<tr>
<td width="30%">Nome:</td>
<td width="50%"><input type="text"
name="Utente" size="16"></td>
<td width="*"> </td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="Passwd"
size="8"></td>
<td> </td>
</tr>
<tr height="5">
<td colspan="3"></td>
</tr>
<tr>
<td colspan="3" align="center">
<input type="submit" value="logon"
name="B1"></td> </tr>
</table>
</form>
<b>sei nuovo? <a href="registra.asp">registrati
!<a></b>
</div>
<div style="position:absolute;
top:240px; left:40px;">
<a href="ricotta1.asp"><img src="bottone1.gif"
border=0></a>
</div>
<div style="position:absolute;
top:350px; left:100px;">
<a href="ricotta2.asp"><img src="bottone2.gif"
border=0></a>
</div>
<div style="position:absolute;
top:440px; left:220px;">
<a href="ricotta3.asp"><img src="bottone3.gif"
border=0></a>
</div>
<div style="position:absolute;
top:440px; left:600px;">
<a href=""ricette.asp"><img
src="bottone4.gif" border=0></a>
</div>
<div style="position:absolute; top:500px; left:410px;">
<a href="forum763.asp"><img src="bottone5.gif"
border=0></a>
</div>
</body>
</html>
|
Cominciamo
adesso ad inserire gli script; in cima ad index.asp mettiamo:
<%
Dim sCommand
Dim Registrato
Dim UserW
Dim NewComm
Registrato = 0
UserW = ""
sCommand = UCase(Trim(Request.QueryString("cmd")))
NewComm = sCommand
Select Case sCommand
Case "LOGCOOK"
Registrato = 1
UserW = Trim(Request.QueryString("user"))
Case "LOGIN"
Registrato = 2
UserW = Trim(Request.QueryString("user"))
Case "NEWUSER"
Registrato = 3
UserW = Trim(Request.QueryString("user"))
Case Else
If Len(Request.Cookie("Club763")("user"))
> 0
Registrato = 1
UserW = Trim(Request.Cookie("Club763")("user"))
NewComm = "LOGCOOK"
End If
End Select
If Registrato > 0 Then
NewComm = "?cmd=" & NewComm & "&user="
& UserW
End If
%>
|
In
questo modo abbiamo per prima cosa controllato se erano stati
passati dei parametri (come faremo quando chiameremo index.asp
dalle altre pagine), poi guardato se l'utente aveva il nostro
cookie; alla fine abbiamo costruito la stringa da aggiungere
all'URL per gli utenti registrati.
Non abbiamo controllato se i dati del cookie erano nel nostro
archivio, ma potremo aggiungerlo in un secondo momento visto
che dovremo fare delle ricerche di quel tipo in login.asp
e potremo copiare da lì il codice necessario.
Cominciamo adesso a gestire la presentazione della pagina.
Per prima cosa dobbiamo nascondere il riquadro di login e
registrazione se l'utente è già registrato;
lo faremo aggiungendo nella parte <style> a div.Login
l'attributo visibility: hidden;
............
border-color: black; padding: 0.5em;
<%
If Registrato > 0 Then
Response.Write "visibility: hidden;" & VbCrLf
End If
%>
z-order: 1;} |
Andiamo
adesso alla div Saluto e sostituiamo la riga bentornato Giuseppe
! con il seguente script:
<%
If Registrato > 0 Then
If Registrato = 3 Then
Response.Write "benvenuto " & UserW &
" !"
Else
Response.Write "bentornato " & UserW &
" !"
End If
End If
%>
|
Dobbiamo
adesso modificare i primi 3 link; all'URL di href infatti
dobbiamo aggiungere la command line che abbiamo preparato
in NewComm, in quanto quelle pagine quando tornerano indietro
dovranno utilizzarla per passarci gli eventuali parametri.
Sostituiamo <a href="ricotta1.asp"> con lo
script:
<% Response.Write
"<a href=" & Chr(34) & "ricotta1.asp"
& NewComm & Chr(34) & ">" %> |
ed analogamente facciamo per ricotta2 e ricotta3.
Gli ultimi due link sono invece riservati agli utenti registrati;
pertanto dovremo scrivere tutta la parte che li riguarda tramite
Response.Write:
<%
If Registrato > 0 Then
Response.Write "<div style=" & Chr(34)
& "position:absolute; top:440px; left:600px;"
& Chr(34) & ">" & VbCrLf
Response.Write "<a href=" & Chr(34) &
"ricette.asp" & NewComm & Chr(34) &
">"
Response.Write "<img src=" & Chr(34)
& "bottone4.gif" & Chr(34) & "
border=0></a>" & VbCrLf
Response.Write "</div>" & VbCrLf
Response.Write "<div style=" & Chr(34)
& "position:absolute; top:500px; left:410px;"
& Chr(34) & ">" & VbCrLf
Response.Write "<a href=" & Chr(34) &
"forum763.asp" & NewComm & Chr(34) &
">"
Response.Write "<img src=" & Chr(34)
& "bottone5.gif" & Chr(34) & "
border=0></a>" & VbCrLf
Response.Write "</div>" & VbCrLf
End If
%>
|
La
nostra pagina è finalmente terminata; possiamo goderci
un meritato riposo prima di affrontare la costruzione delle
altre pagine.
Il metodo che abbbiamo utilizzato per passarci i parametri
tra le pagine è abbastanza macchinoso e noioso da codificare
e potevamo evitarlo con l'utilizzo dell'oggetto Session (che
non abbiamo ancora esaminato) in quanto le variabili che ci
interessavano erano variabili da utilizzare e mantenere per
una sessione (ovvero per un collegamento di un utente); tuttavia
questo esercizio non è stato inutile in quanto vi saranno
occasioni in cui dovremo utilizzare per forza la QueryString
in quanto i parametri saranno tipici dell'operazione e non
della sessione, come ad esempio in una pagina di gestione
di un database.
Con le altre pagine, che vedremo nella prossima lezione, impareremo
a ricevere i dati passati da un Form, a scrivere Cookie sul
PC dell'utente ed a utilizzare i file di testo.
Di quest'ultimo argomento vedremo anche un interessante esempio
su come sia possibile utilizzare una pagina html esistente
in una pagina asp e le possibilità che ci offre questa
soluzione.
|