Home Page  >>>  Training  >>>  ASP

Registrati su TheZion
Password Persa




Guestbook in ASP by neo

La creazione di un semplice guestbook con l'utilizzo dell'oggetto file system (conosciuto nella lezione precedente) è abbastanza agevole, anche se presenta un piccolo inconveniente.
Prima di affrontare questa parte però voglio introdurre una funzionalità particolarmente utile tutte le volte che si vogliono inserire dei file all'interno delle nostre pagine, la direttiva include.
Il presente sito fa un uso smodato degli include poiché semplificano la vita ai webmaster. Come peri fogli di stile infatti con l'utilizzo degli include basta creare un'unico file ed includerlo in ogni nostra pagina per dare un'aspetto uniforme al sito. Se si rende necessaria una modifica basterà agire su di un solo file e le modifiche saranno propagate in automatico a tutte le pagine che compongono il nostro sito.
Per utilizzare l'include basterà scrivere <!--#include file=" "--> all'interno di una pagina asp, mettendo tra le virgolette il nome del file da includere. L'inserimento avviene in modo completamente trasparente per il client. Nel file incluso si possono inserire i tag html. Quindi se scriviamo la formattazione di un guestbook in un file di testo e poi lo includiamo nella pagina che presenta a video il registro degli ospiti avremo un guest book perfettamente formattato (se avremo la furbizia di inserire i tag html in fase di scrittura). Ma passiamo al piccolo inconveniente che affligge l'utilizzo dell'oggetto file system.
La scrittura in modalità append attacca in coda al file di testo le nuove informazioni, quindi il guest book verrebbe "a testa in giù". Per evitare cio' bisogna procedere in questo modo. Come prima azione bisogna leggere il contenuto del file deputato a contenere il nostro guest book e memorizzarlo in una variabile.
Dopodiché il file di testo che conterrà il nostro guestbook andrà aperto in modalità write in modo da cancellare l'intero contenuto del file, al posto del quale verranno scritte i dati del nuovo visitatore ed il valore precedentemente memorizzato nella variabile.
Ma entriamo piu nel dettaglio. Come prima cosa dovremo realizzare una pagina nella quale i nostri visitatori dovranno inserire il nome, l'email e l'immancabile commento al sito.
Questa è ovviamenteo la combinazione più semplice, tutto sta alla vostra fantasia.
Inseriamo quindi i controlli necessari.

Nome: <input type="text" name="nome">
La tua e-mail:<input type="text" name="mail">
Il tuo commento sul sito:<textarea name="commento" rows=5 cols=30></textarea> <input type="hidden" name="controllo" value="ok">
<input type="submit" value="Scrivi sul guest-book" >

Per trasmettere i dati alla pagina che li processerà bisognerà inserire i controlli tra i tag
<form method="POST" action=" <%=Request.ServerVariables ("script_name")%>"></form>
Puntualizziamo alcuni particolari. Il valore <%=Request.ServerVariables ("script_name")%> ha come output il nome della pagina che state scrivendo. Con questo sistema il form richiamerà questa stessa pagina.
Per impedire di far processare il file di testo ogni volta che si carica la pagina, è stato incluso il controllo nascosto chiamato controllo.
A questo punto inseriamo il codice che verrà eseguito sul server.

controllo=request.form("controllo")

Questa istruzione utilizza il metodo form della collezione request che estrae il valore del controllo hidden di cui sopra. Inserendo un costrutto If possiamo condizionare la scrittura del file di testo in funzione della sottomissione del form.
<%if controllo="ok" then
istruzioni che processeranno il file
end if%>

Analizziamo in dettaglio queste istruzioni.

Le tre righe successive estraggono dal form sottomesso i valori dei controlli nome mail e commento.
nome=request.form("nome")
mail=request.form("mail")
commento=request.form("commento")

Poi (come nella lezione precedente) ci si fa mappare dal server il percorso fisico del file deputato a contenere il nostro guestbook e si crea un'istanza (guest) verso l'oggetto filesystem.
Poi si apre il file assegnando l'istanza alla variabile leggi.
I parametri del comando sono i seguenti.
Registro è il percorso fisico del file di guestbook (si sarebbe potuto scrivere a mano ma poi avrebbe funzionato solo sul vostro pc).

Il numero uno è la modalita di accesso al file. 1= Read, 2= Write, 8=Append.
Il terzo parametro indica (true) che se il file non esiste deve essere creato.
A questo punto si invoca il metodo readall dell'istanza leggi e si memorizza il valore restituito nella variabile contenuto e si chiude la connessione.
registro=server.mappath("book.txt")
set guest=server.createobject("scripting.filesystemobject")
set leggi=guest.opentextfile(registro,1,true)
contenuto=leggi.readall
leggi.close


Ora riapriamo il file di testo in scrittura, con la concatenazione di stringa (per imparare questi ed altri trucchi vi consiglio un buon libro sul VBscript che è il linguaggio nativo delle asp) componiamo il nuovo contenuto del nostro file e con il metodo write dell'oggetto scrivi memorizziamo il tutto nel nostro file di testo e chiudiamo la connessione.
set scrivi=guest.opentextfile(registro,2,true)
new_guest="Data e ora della visita:"&now()&"<br>"
new_guest=new_guest&"Nome: "&nome&"<br>"
new_guest=new_guest&"Email: "&mail&"<br>"
new_guest=new_guest&"Commento: "&commento&<br>&<hr>&contenuto
scrivi.write(newguest)
scrivi.close

A questo punto, dopo il costrutto if ci basterà inserire <--#include file="book.txt"-->
per inserire il nostro guestbook nella pagina asp.
Per avere un'aggiornamento tempestivo mettete il comando d'inclusione dopo il codice da eseguire sul server cosi da includere il file dopo che è stato scritto. Ripeto di nuovo la raccomandazione della lezione precedente.
Testate per bene il funzionamento del codice prima di caricarlo sul server.

Nella prossima lezione impareremo a creare un servizio segnalazione link utilizzando il componente RPRobber scritto da Alberto Velo e presente sul server che gentilmente ospita queste lezioni.



Leggi commenti

Numero commenti inviati: 0