Home Page  >>>  Training  >>>  ASP

Registrati su TheZion
Password Persa




Guest book in Access by neo
Nelle tre lezioni precedenti abbiamo visto come funzionano i database e come accedervi attraverso una pagina ASP. Ora metteremo in pratica tutta quella teoria per costruire un guestbook basato su access.

Utilizzeremo il seguente form

Nome:
La tua e-mail:
Il tuo commento sul sito:


Come prima cosa impostiamo il database che accoglierà le nostre informazioni.
Apriamo access, nominiamo il nostro database guest.mdb, salviamolo nella cartella che conterrà la pagina asp che lo processerà e creiamo una nuova tabella chiamata guest composta dalle seguenti colonne.
Nel campo data mettete come valore predefinito Date() così da avere in automatico la data di inserimento del record.
Limitate i caratteri inseribili nei controlli text a 40 altrimenti in fase di inserimento il database restituirà un errore.

La nostra pagina asp, chiamiamola guest.asp, andrà impostata con una struttura di questo genere.
Nell'header, andranno messe le istruzioni che scriveranno nel database solo se si verifica una certa condizione mentre nel body inseriremo le istruzioni che andranno a leggere dal database.

Cominciamo dall'header.
set dataconn=server.createobject("adodb.connection")
dir=server.mappath(".")
strconn="driver={microsoft access driver (*.mdb)}; dbq=guest.mdb; defaultdir="+dir+" ;"
dataconn.Open strconn


A questo punto inseriremo un punto di controllo per evitare che ad ogni refresh di pagina venga inserito un record nel guestbook.

if request.form("controllo")="ok" and session("inserimento")="" then
strinsert="INSERT INTO guest (nome, mail, commento)"
strinsert=strinsert&" VALUES=('" & request.form("nome") & "','" & request.form("mail") & "','" & request.form("commento") & "') ;"
dataconn.execute(strinsert)
session("inserimento")="inserito"
end if


Analizziamo più in dettaglio queste poche righe.
L'if esegue un doppio controllo, infatti agisce sul database solo se si verificano due condizioni.
La prima è che il form è stato effettivamente spedito con il trucco del controllo nascosto (vedi lezione 3).
La seconda condizione è che non si sia ricaricata la pagina rispedendo le stesse informazioni.
Questo lo si fa con un semplice controllo su di una variabile di sessione.
All'avvenuta scrittura nel database si imposta il valore della variabile di sessione, cosi che non è più possibile scrivere nel guestbook finché non si ricomincia una nuova session. Questo sistema è utile anche per prevenire scherzi.

Passiamo al blocco di lettura che dovrà sempre essere eseguito ad ogni caricamento di pagina.

Dopo aver inserito il form che richiama la pagina che lo contiene con l'uso delle server variables, passiamo ad inserire la parte in ASP.

set rs=server.createobject("adodb.recordset")
sql="SELECT * FROM guest ORDER BY ID DESC ;"
rs.open sql,dataconn,3,3

<table>

do while not rs.EOF <tr>

<td>Nome:  rs.fields("nome")</td>
<td>e-mail:  rs.fields("mail")</td>
</tr>

<tr>

<td>Commento:  rs.fields("commento")</td>
<td>Data della firma:  rs.fields("data")</td>
</tr>

rs.MoveNext
loop


</table>

rs.close
dataconn.close


In questo modo produrremo tante righe di tabella quante firme sono state inserite nel nostro guestbook.

Anche se a prima vista i database possono essere più complessi, le operazioni di lettura e di inserimento sono molto più semplici e meno macchinose dei file di testo.

Prima di concludere un'ultima raccomandazione.
In fondo ad ogni pagina asp mettete sempre un blocco di codice dove liberate risorse.

Ad esempio nella nostra pagina guest.asp abbiamo dichiarato due oggetti.
Quindi in fondo metteremo quanto segue.
set rs = nothing
set dataconn = nothing




Leggi commenti

Numero commenti inviati: 0