Un Forum di discussione in ASP - Parte 5 | |
![]() |
|
| |
|
ASP Center
Articoli
Referenze
Script
FAQ
Downloads
Siti utili
ASP
E-Commerce con ASP
Menu Javascript
Area Aziende
Cocktail
Registrazione domini
|
Un Forum di discussione in ASP - Parte 5
Concesso in esclusiva a Mr.Webmaster. Vietata la riproduzione.
Inserimento di una nuova discussione
Passiamo, in quest'ultima fase dell'Articolo sulla realizzazione di un Forum di discussione in ASP, alla fase di inserimento di nuovi messaggi e di risposte ai messaggi già presenti, iniziando con i nuovi messaggi utilizzando il file nuovo.asp il quale recupera tutte le sezioni a disposizione e dispone in una selectbox, in modo da permettere all'utente di scegliere. Ovviamente il file, per prima cosa, controlla che l'utente sia loggato, quindi iscritto. Di seguito il codice:
<%@LANGUAGE = VBScript%>
<!--#include file="config.asp"-->
<%
If Session("username") = "" Then
Response.Redirect "index.asp"
End If
Dim Cn, add, id_sezione, id_autore, titolo, messaggio, Rs
add = Request.QueryString("add")
Set Cn = Server.CreateObject("ADODB.Connection")
Cn.Open StrCn
%>
<html>
<head>
<title>Forum</title>
</head>
<body>
<!--#include file="menu.asp"-->
<%
If add = "OK" Then
id_sezione = Request.Form("id_sezione")
titolo = Request.Form("titolo")
messaggio = Request.Form("messaggio")
If Len(Trim(id_sezione)) = 0 Then
Response.Write "Seleziona la sezione"
ElseIf Len(Trim(titolo)) = 0 Then
Response.Write "Inserisci il titolo"
ElseIf Len(Trim(messaggio)) = 0 Then
Response.Write "Inserisci il messaggio"
Else
Dim SQL
SQL = ""
SQL = SQL & "SELECT id FROM utenti "
SQL = SQL & "WHERE username = '"
SQL = SQL & Session("username") & "'"
Set id_autore = Cn.Execute(SQL)
Set Rs = Server.CreateObject("ADODB.Recordset")
Rs.Open "messaggi", Cn, 3, 3
Rs.AddNew
Rs("id_sezione") = id_sezione
Rs("id_autore") = id_autore("id")
Rs("titolo") = titolo
Rs("messaggio") = Server.HTMLEncode(messaggio)
Rs("data") = Now()
Rs.Update
Rs.Close
Set Rs = Nothing
With Response
.Write ""
.Write "Messaggio inserito con successo!"
End With
End If
With Response
.Write ""
.Write "<a href=""javascript:window.history.back()"">"
.Write "Indietro</a>"
End With
Else
%>
<table width="500" align="center" cellpadding="1" cellspacing="1"
border="1">
<form method="post" action="nuovo.asp?add=OK">
<tr>
<td bgcolor="#CCCCCC"><b>Nuovo</b></td>
</tr>
<tr>
<td>
Sezione<br>
<select name="id_sezione">
<option value=""></option>
<%
Dim MostaSezioni, SQL_Sez
SQL_Sez = "SELECT * FROM sezioni ORDER BY nome ASC"
Set MostaSezioni = Cn.Execute(SQL_Sez)
While MostaSezioni.EOF = False
%>
<option value="<%=MostaSezioni("id")%>">
<%=MostaSezioni("nome")%>
</option>
<%
MostaSezioni.MoveNext
Wend
%>
</select><br>
Titolo<br>
<input type="text" name="titolo" maxlength="50">
<br>
Messaggio<br>
<textarea name="messaggio" style="width: 100%; height: 200px;">
</textarea><br>
</td>
</tr>
<tr>
<td align="right"><input type="submit" value="Iscriviti"></td>
</tr>
</form>
</table>
<%
End If
%>
</body>
</html>
<%
Cn.Close
Set Cn = Nothing
%>
Risposta ad una singola discussioneConcludiamo questo lungo Articolo con la fase di risposta ad una discussione esistente. Utilizziamo stesso il file leggi.asp, modificandolo, per inserire il form di discussione che sarà visibile solo se l'utente è loggato. Riprendiamo quindi il file leggi.asp ed inseriemo questo codice prima della chiusura del Tag body ' QUI METTEREMO IL CODICE PER LE RISPOSTE ALLE DOMANDE ' CHE PRESENTIAMO DI SEGUITO... </body> </html> <% Cn.Close Set Cn = Nothing %>Ecco il codice
<%
If Session("username") <> "" Then
%>
<p align="center">
<b>Rispondi a questo messaggio</b><br><br>
<form method="post" action="leggi.asp?id=<%=id%>&risp=OK">
<textarea name="messaggio" cols="50" rows="10">
</textarea><br><br>
<input type="submit" value="Rispondi">
</form>
<%
If Request.QueryString("risp") = "OK" Then
Dim messaggio, id_autore, SQL_A
SQL_A = ""
SQL_A = SQL_A & "SELECT id FROM utenti "
SQL_A = SQL_A & "WHERE username = '"
SQL_A = SQL_A & Session("username") & "'"
Set id_autore = Cn.Execute(SQL_A)
messaggio = Request.Form("messaggio")
If Len(Trim(messaggio)) > 0 Then
Dim SQL_I
SQL_I = ""
SQL_I = SQL_I & "INSERT INTO messaggi "
SQL_I = SQL_I & "(id_autore, messaggio, id_risposte, data)"
SQL_I = SQL_I & "VALUES "
SQL_I = SQL_I & "('" & id_autore("id") & "', "
SQL_I = SQL_I & "'" & Server.HTMLEncode(messaggio) & "', "
SQL_I = SQL_I & "'" & id & "', "
SQL_I = SQL_I & "'" & Now() & "')"
Cn.Execute(SQL_I)
End If
Response.Redirect "leggi.asp?id=" & id
End If
End If
%>
ConclusioniIl Forum di discussione preso in esame in questo Articolo non vuol'essere la risoluzione dei problemi del lettore in merito alla necessità di avere un simile strumento bello e pronto, ma, per quanto valido, è un Forum creato a scopo didattico ed è pertanto migliorabile sotto ogni punto di vista, dalla grafica all'implementazione di nuove funzionalità. Buon lavoro! |
Newsletter
Stringhe di Conn.
|
||
| © 2008 ASP Center di Luca Ruggiero - P. IVA 05564851219 - Disclaimer | Privacy | Pubblicità | Supportaci | Staff | Contatti | ||||
| Appunti PHP | Giornale Webmaster | Mr.Webmaster | Download | DevSpy.com | ASPCode.it | ClaudioGarau.it | Webmaster Facile | Come Faccio | CodiceFacile.it | I Programmatori | By Luciani | VoiceXML Italian User Group | Giochi | Extro Web Site | Morpheus Web | AG Web Solutions | Net-Free | PC Sicuro | PC Self | Tutorial Web | Dablones | ||||