asp - asp.net - aspcode.it

COMMUNITY - Login
 Username:
 
 Password:
 
Voglio registrarmi!
Password dimenticata?
 Utenti on-line: 0
 Ospiti on-line: 7891
ASPCode.it - Store

  > > Articoli

Guest book con file di testo

Data di pubblicazione: 16/06/2003        Voto della community: 3,17 (Votanti: 4)


In questo articolo vedremo come creare un semplice ma funzionale libro degli ospiti per il nostro sito, utilizzando i file di testo.

Il primo passo è la creazione di un file di testo, che chiameremo gb.txt, nel quale scriveremo la seguente riga:   (il carattere dello "spazio" in html). Dopodiché, copieremo il file in una cartella con permessi in scrittura abilitati e non lo andremo più a toccare.

Il secondo passo, quello più complicato, è la realizzazione delle seguenti due pagine ASP:

- gbtxt.asp - contenente il modulo per l'inserimento di un nuovo post nel guest book. La pagina inoltre si preoccupa di leggere e scrivere i post precedentemente inseriti, contenuti nel file gb.txt.
- instxt.asp - inserisce nuovi post in gb.txt inviati attraverso il modulo di gbtxt.asp.

Vediamo nel dettaglio come strutturare le due pagine.

gbtxt.asp

Iniziamo a scrive l'incipit della pagina

<%@ LANGUAGE = VBScript %>
<% Option Explicit %>
<html>
<head>
<title>gbtxt.asp</title>
</head>
<body>
<center>
<table width="450" cellspacing="0" cellpadding="10">
  <tr>
    <td>
      <center><b>guest book - txt</b><br>

Dopo aver dimensionato (a nostro piacimento) la tabella contenente il form, prepariamoci ad analizzare i campi dello stesso: in questo caso sono presenti due caselle di testo (per il nome e la e-mail del guest), una textarea nella quale verrà inserito il messaggio e due pulsanti (uno di invio e uno di reset).

      <form method="post" action="instxt.asp">
      nome: <input type="text" name="name" size="30"><br>
      e-mail: <input type="text" name="mail" size="30"><br>
      messaggio:<br><textarea name="post" rows="5" cols="50"></textarea><br>
      <input type="submit" name="submit" value="invia">
      <input type="reset" value="cancella">
      </form>
      </center>

Completato il form costruiamo ora la parte più importante (e quella che più ci interessa) della pagina; il codice ASP per la gestione dei post presenti nel file gb.txt.

<%

Nelle tre righe sottostanti, creiamo la connessione al nostro file di testo.

Dim objOpenFile, objFSO, strPath
strPath = Server.MapPath("gb.txt")
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

Quindi apriamo il file gb.txt (precedentemente definito in strPath) in modo lettura (identificato con il numero 1).

Set objOpenFile = objFSO.OpenTextFile(strPath, 1)

Creiamo il ciclo Do While per scorrere e stampare il file linea per linea fino alla fine dello stesso; inseriamo inoltre alla fine di ogni linea stampata due "ritorno a capo" per spaziare a video i post presenti.

Do While Not objOpenFile.AtEndOfStream
  Response.Write (objOpenFile.ReadLine & "<br><br>")
Loop

Chiudiamo infine le connessioni aperte precedentemente.

objOpenFile.Close
Set objOpenFile = Nothing
Set objFSO = Nothing

Chiusura del tag contenente il codice ASP e chiusura dei tag html.

%>
  </td>
    </tr>
</table>
</center>
</body>
</html>

instxt.txt

<%@ LANGUAGE = VBScript %>
<% Option Explicit %>
<%

Recuperiamo i campi del form, inviati attraverso il modulo del file gbtxt.asp con il comando Request.Form("nome campo").

Dim strPost, strName, strEmail, strTime, strPath, objFSO, objOpenFile, strOld
strPost = Request.Form("post")
strPost = Replace(strPost, VbCrLf, "<br>")
strName = Request.Form("name")
strEMail = Request.Form("mail")
strTime = Date() & " ore " & Time()

N.B. la riga con il comando Replace(strPost... ) elimina i "ritorno a capo" digitati nel form e li sostituisce con dei <br>, per una corretta gestione dei post inseriti.

Creiamo la connessione al nostro file di testo come abbiamo fatto in gbtxt.asp.

strPath = Server.MapPath("gb.txt")
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

Apriamo il file gb.txt in modo lettura, leggiamolo tutto e inseriamo il suo contenuto nella variabile strOld (strOld = objOpenFile.ReadAll).

Set objOpenFile = objFSO.OpenTextFile(strPath, 1)
strOld = objOpenFile.ReadAll

Apriamo nuovamente il file gb.txt, questa volta in modo scrittura (identificato con il numero 2), e inseriamo il nuovo post con il comando objOpenFile.WriteLine, formattandolo in html a nostro piacimento.

Set objOpenFile = objFSO.OpenTextFile(strPath, 2)
objOpenFile.WriteLine "messaggio inserito da: " & "<a href='mailto:" & strEMail & "'>" &_
strName & "</a> " & "il " & strTime & "<br>" & strPost
objOpenFile.Write strOld

Chiudiamo le connessioni aperte precedentemente.

objOpenFile.Close
Set objOpenFile = Nothing
Set objFSO = Nothing
%>

Reindirizziamo l'utente al file gbtxt.asp nel quale vedrà comparire il messaggio da lui inserito, in cima alla lista dei post.

<% Response.Redirect("gbtxt.asp") %>

Osservazioni

La variabile d'appoggio strOld che abbiamo incontrato in instxt.asp serve per poter memorizzare i vecchi post e permettere di inserire in cima all'elenco l'ultimo inserito. Di default, infatti, il metodo Write eseguito su un file, cancella il contenuto del medesimo prima di inserirne del nuovo. Il metodo Append per contro, mantiene il contenuto del file ma inizia a scrivere subito dopo la fine di quest'ultimo.

Download

Cliccando sul link seguente è possibile scaricare il codice di esempio relativo allo script presentato in questo articolo.




Utenti connessi: 7891