Lorenzo Pascucci
a- a+

Realizzare una bacheca dei visitatori

Con questa nuova lezione realizzeremo una bacheca online, per saperne di più vi rimandiamo alla lezione apposita (Sito Interattivo).

La sua realizzazione è molto semplice, in quanto ci forniamo di un database e due semplici pagine asp.

Funzionamento
Avremo una pagina asp dove consultare tutti i messaggi, una dove poter scrivere il nuovo messaggio e un database dove memorizzare il tutto. In questo caso non sarà necessario registrarsi, ma chi vorrà, potrà aggiungere qualche riga per l'autentificazione dell'utente, in tal caso sono disponibile degli script asp già pronti.

Aggiungere messaggi (nome pagina : invia.asp)
Per inserire nuovi messaggi c'è bisogno logicamente di un modulo, nel nostro caso richiedere solo nome (o nickname), email e messaggio. Tali campi, tranne il messaggio, non sono obbligatori. Ecco come apparirà:

Nome (o nickname) : (nome campo: nickname)
Email : (nome campo: email)
Oggetto : (nome campo: oggetto)
Messaggio : 
(nome campo: msg)

Ecco il codice del modulo:

Come si vede una volta premuto il tasto INVIA si viene reindirizzati sempre alla stessa pagina asp che processerà i dati e li inserirà nel database.

Ecco il codice (utilizzando ADO) :

<%
if Request.QueryString("modo") = "ok" then


'Connessione al database
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath("dati/bacheca.mdb") 

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "messaggi" , conn, 3, 3
rs.AddNew
rs("nickname") = Request.Form("nickname")
rs("email") = Request.Form("email")
rs("oggetto") = Request.Form("oggetto")
rs("msg") = Request.Form("msg")
rs("data") = Date()
rs.Update
rs.Close
set rs = Nothing
conn.Close
set conn = Nothing
response.redirect ("leggi.asp")

else
%>

Questo codice va inserita prima di ogni tag html, quindi prima di <html>. In fondo alla pagina asp, infine c'è da aggiungere anche <% End If %> (dopo il tag </html>)

Database
Come abbiamo notato il database è formato da un'unica tabella che contiene 5 campi, ecco come è strutturato :

MESSAGGI

Nome campo Tipo dati

Descrizione

Nickname

Testo

consigliato: max 100 caratteri

Email

Testo consigliato: max 150/200 caratteri
Oggetto Testo consigliato: 255 caratteri
Msg Memo  
Data Data/Ora Data inserimento messaggio

Lettura Messaggi
Per leggere i messaggi niente di più semplice. Basta una semplice connessione al database e la lettura di tutti i campi. Quindi ecco il codice da utilizzare (da inserire tra i tag BODY)

<%
' Connessione database
Set conn = Server.CreateObject("ADODB.Connection")
sql = "SELECT * FROM messaggi ORDER BY data DESC"
dsnpath = "DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)}; "
dsnpath = dsnpath & "DBQ=" & Server.MapPath("../dati/bacheca.mdb")
conn.open dsnpath
Set rs = Conn.Execute(sql)
Set nickname=rs("nickname")
Set email=rs("email")
Set oggetto=rs("oggetto")
Set msg=rs("msg")
Set data=rs("data")
If rs.EOF = False Then
%>
<% Do Until rs.EOF I = I + 1%>
<table width="520" border="0" bordercolor="#C0C0C0" style="font-size: 8pt; font-family: Tahoma">
<td width="499" bgcolor="#0000FF" style="color: #FFFF00; font-weight: bold">
Messaggio di : <a href="mailto:<%=email%>"><%=nickname%></a> inviato il <%=data%> 
<tr>
<td width="497" valign="top">
Oggetto: <%=Oggetto%><br><br><%=Msg%>
</tr>
</table> 
<% 
rs.movenext 
loop
End if
rs.close
Set rs = nothing 
End if
%>

Conclusione
Ecco come realizzare una semplice bacheca online. Naturalmente è possibile far scrivere i msg solo ad utenti registrati, in tal caso consigliamo di aggiungere una nuova tabella all'interno del database che mantiene tutte le info sugli utenti. E' anche possibile dividere i messaggi in categoria eo visualizzare solo quelli nuovi rispetto all'ultimo accesso attraverso un semplice cookie. Quindi come vediamo, questa illustrata è una bacheca BASE dove è possibile aggiungere molte altre opzioni.



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Marcello
Ti è piaciuto l'articolo?