Ho inserito un guestbook nel mio sito, visto che nn sono pratico di asp volevo chiedervi un aiuto:
Ho capito leggendo varie discussioni che il codice mi da errore (too many task) perchè non uccido o chiudo le connessioni (nothing), mi potete scrivere dove devo ucciderle e con che sintassi? vi scrivo il codice grazie sareste molto gentili :


codice:
<%@LANGUAGE = JScript%>
<%
	/*
		Autore: Luca Ruggiero - http://www.lukeonweb.net
		Fonte:  freeAsp.it - http://freeasp.html.it
	*/

	// ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----

	// QUESTA E' LA PASSWORD DI AMMINISTRATORE PER ELIMINARE MESSAGGI INDESIDERATI... CAMBIALAAAAAAAAAAAAAAA :-)
	var admin_password = "mattorock78";

	// ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
	
	
	/*
		ASPETTI DELLA CONFIGURAZIONE DELL'APPLICAZIONE NON CONTEMPLATI NEI SINGOLI PASSAGGI DI CODICE
		
		Pur trattandosi di un semplice Guestbook, questo singolo file consente di effettare
		tutte le operazioni possibili. A tal proposito è necessario puntualizzare alcune cose:
		
		1. E' importante, qualora dovessi decidere di rinominare questo file,
		   modificare tutti i punti in cui si fa riferimento al file guestbook.asp
		   sostituendo col nome del file che hai utilizzato per la rinomina.
		
		2. La grafica è personalizzabile in tutti i minimi particolari,
		   ma è importante non confondere alcuna condizione del codice Asp
		   evitando che generino errori.
		   
		Gli altri punti cardine dell'applicazione sono contemplati seguendo i vari passi del codice.
	*/
	
	// ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
	
	Response.Buffer = true;
	
	// APRO LA CONNESSIONE VERSO IL DATABASE
	// SE SUL TUO SERVER HAI NECESSITA' DI SPOSTARE IL DATABASE IN UNA CARTELLA DI SISTEMA DEDICATA
	// DEVI MODIFICARE IL PERCORSO NELLA PORZIONE DI CODICE Server.MapPath("percorso/guestbook.mdb")
	var connessione = new ActiveXObject("ADODB.Connection");
	var stringa = "driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("guestbook.mdb");
	connessione.Open(stringa);
	
	// UTILIZZEREMO UN SOLO FILE PER ESEGUIRE TUTTE LE OPERAZIONI POSSIBILI
	// INSERIMENTO DEI MESSAGGI, VISUALIZZAZIONE DEI MESSAGGI, CANCELLAZIONE DI MESSAGGI DA PARTE DELL'AMMINISTRATORE, ECC...
	// QUINDI DICHIARO UNA VARIABILE QUERYSTRING PER OTTENERE RISULTATI DIVERSI A SECONDA DEL LORO VALORE
	var azione = new String(Request.QueryString("azione"));
	
	// CONTO I MESSAGGI PREDENTI SUL DATABASE
	var conta = connessione.Execute("SELECT COUNT(*) AS id FROM messaggi");
	
	// EFFETTUO LA PAGINAZIONE PER MOSTRARE SOLO UN CERTO NUMERO DI MESSAGGI A VIDEO
	// IN QUESTO CASO 10
	var quanti = 10;
	var Mostra = new ActiveXObject("ADODB.Recordset");
		Mostra.Open("SELECT * FROM messaggi ORDER BY id DESC",connessione,1);
	var pagina = parseInt(Request.QueryString("pagina"));
	    if (isNaN(pagina) || pagina < 1) pagina = 1;
	    if (!Mostra.EOF)
	    {
	         Mostra.PageSize = quanti;
	         Mostra.AbsolutePage = pagina;
	    }
	var i = 0;
	
	// IMPOSTO IL COLORE DI SFONDO DELLE CELLE CHE CONTENGONO I MESSAGGI
	var colore = 0;
%>
<html>
	<head>
		<title>Guestbook</title>
		<link rel="stylesheet" type="text/css" href="guestbook.css">
	</head>
<body scroll=yes>

<h2><font face="sans-serif">Guestbook</font></h2>

<table class="MODULO" width="500" align="center" cellpadding="3" cellspacing="0">
	<form name="guestbook" method="post" action="guestbook.asp?azione=Inserisci">
		<tr>
			
      <td width="150">Nome</td>
			<td width="350"><input type="text" name="nome" maxlength="50" style="width: 100%;"></td>
		</tr>
		<tr>
			
      <td>Email</td>
			<td><input type="text" name="email" maxlength="50" style="width: 100%;"></td>
		</tr>
		<tr>
			
      <td>Homepage (opzionale)</td>
			<td><input type="text" name="homepage" maxlength="50" style="width: 100%;" value="http://"></td>
		</tr>
		<tr>
			
      <td>Titolo</td>
			<td><input type="text" name="titolo" maxlength="70" style="width: 100%;"></td>
		</tr>
		<tr>
			
      <td colspan="2">Messaggio</td>
		</tr>
		<tr>
			<td colspan="2"><textarea name="messaggio" style="width: 100%; height: 100px;"></textarea></td>
		</tr>
		<tr>
			<td colspan="2" align="right"><input type="submit" value=" Firma il Guestbook "></td>
		</tr>
	</form>
</table>

<p align="center">Ci sono <%=conta("id")%> messaggi</p>

<%
	if (azione == "undefined")
	{
%>
<table width="500" align="center" cellpadding="3" cellspacing="0">
<%
	// MOSTRO I MESSAGGI A VIDEO
	if (Mostra.EOF)
	{
		Response.Write("

Non ci sono messaggi...</p>");
	}
	else while (!Mostra.EOF && i<quanti)
	{
%>
	<tr>
		<td bgcolor="#<%colore%2 == 0 ? Response.Write("FFFFFF") : Response.Write("EEEEEE")%>" style="border-bottom: Dashed 1px #CCCCCC;">
			<font color="#800000"><%=Mostra("titolo")%></font><%Session("amministratore") == "OK" ? Response.Write(" (<a href=\"guestbook.asp?azione=Cancella&id=" + Mostra("id") + "\">cancella</a>)") : Response.Write("")%>

			Autore: "><%=Mostra("nome")%>

			Data: <%=Mostra("data")%> ore <%=Mostra("ora")%>


			<%=Mostra("messaggio")%>
			<%Mostra("homepage") == "http://" || Mostra("homepage") == "" || Mostra("homepage") == "undefined" ? Response.Write("") : Response.Write("

<a href=\"" + Mostra("homepage") + "\" target=\"_blank\">" + Mostra("homepage") + "</a>")%>
		</td>
	</tr>
<%
		i++;
		colore++;
		Mostra.MoveNext();
	}
%>
</table>
<%
	}
	else if (azione == "Inserisci")
	{
		// RECUPERO I DATI DAL MODULO PER EFFETTUARE LA REGISTRAZIONE
		var nome = new String(Request.Form("nome"));
		var email = new String(Request.Form("email"));
		var homepage = new String(Request.Form("homepage"));
		var titolo = new String(Request.Form("titolo"));
		var messaggio = new String(Request.Form("messaggio"));
		// ESPRESSIONE REGOLARE PER LA VERIFICA DELL'INDIRIZZO EMAIL
		var verifica = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
		// CREO LA DATA
		var oggi = new Date();
		var data = oggi.getDate() + "/" + (oggi.getMonth() + 1) + "/" + oggi.getFullYear();
		var ora = oggi.getHours() + ":" + oggi.getMinutes();
		// VALIDAZIONE DEI DATI INSERITI DALL'UTENTE
		var errore = "guestbook.asp?azione=errore&codice=";
		if (nome == "" || nome == "undefined" || nome.charAt(0) == " ")
		{
			Response.Redirect(errore + "1");
		}
		else if (!verifica.test(email))
		{
			Response.Redirect(errore + "2");
		}
		else if (titolo == "" || titolo == "undefined" || titolo.charAt(0) == " ")
		{
			Response.Redirect(errore + "3");
		}
		else if (messaggio == "" || messaggio == "undefined" || messaggio.charAt(0) == " ")
		{
			Response.Redirect(errore + "4");
		}
		else
		{
			var r_messaggio = messaggio.replace(/</g, "&lt;");
			var rr_messaggio = r_messaggio.replace(/>/g, "&gt;");
			var rrr_messaggio = rr_messaggio.replace(/&/g, "&amp;");
			var rrrr_messaggio = rrr_messaggio.replace(/\n/g, "
");
			// CASO IN CUI TUTTE LE CONDIZIONI SONO STATE SODDISFATTE
			// QUINDI PROCEDO CON LA REGISTRAZIONE DEL MESSAGGIO
			var recordset = new ActiveXObject("ADODB.Recordset");
				recordset.Open("messaggi",connessione,3,3);
					recordset.AddNew();
						recordset("nome") = nome;
						recordset("email") = email;
						recordset("homepage") = homepage;
						recordset("titolo") = titolo;
						recordset("messaggio") = rrrr_messaggio;
						recordset("data") = data;
						recordset("ora") = ora;
					recordset.Update();
				recordset.Close();
				recordset = nothing;
			Response.Redirect("guestbook.asp");
		}
	}
	else if (azione == "errore")
	{
		// GESTIONE DEI MESSAGGI DI ERRORE
		var codice = parseInt(Request.QueryString("codice"));
		var correggi = "<p align=\"center\"><input type=\"button\" value=\"Correggi\" onClick=\"window.history.back()\">";
		if (codice == "1")
		{
			Response.Write("<p class=\"ERRORE\">Inserisci il tuo nome per favore</p>" + correggi);
		}
		else if (codice == "2")
		{
			Response.Write("<p class=\"ERRORE\">Inserisci la tua email per favore</p>" + correggi);
		}
		else if (codice == "2")
		{
			Response.Write("<p class=\"ERRORE\">Inserisci la tua email per favore</p>" + correggi);
		}
		else if (codice == "3")
		{
			Response.Write("<p class=\"ERRORE\">Inserisci il titolo del messaggio favore</p>" + correggi);
		}
		else if (codice == "4")
		{
			Response.Write("<p class=\"ERRORE\">Inserisci il corpo del messaggio favore</p>" + correggi);
		}
		else
		{
			Response.Redirect("guestbook.asp");
		}
	}
	else if (azione == "Login")
	{
		// LOGIN PER L'AMMINISTRATORE
		var password = new String(Request.Form("password"));
		if (password == admin_password)
		{
			Session("amministratore") = "OK";
		}
		Response.Redirect("guestbook.asp");
	}
	else if (azione == "Logout")
	{
		// LOGOUT PER L'AMMINISTRATORE
		Session.Abandon();
		Response.Redirect("guestbook.asp");
	}
	else if (azione == "Cancella")
	{
		// EFFETTUO LA CANCELLAZIONE DEL MESSAGGIO (SOLO SE AUTENTICATO)
		if (Session("amministratore") != null)
		{
			var id = parseInt(Request.QueryString("id"));
			connessione.Execute("DELETE * FROM messaggi WHERE id LIKE '" + id + "'");
		}
		Response.Redirect("guestbook.asp");
	}
	else
	{
		Response.Redirect("guestbook.asp");
	}
%>





<p align="center">

<%
	// CREO LA BARRA DI NAVIGAZIONE PER VISITARE "TUTTE LE PAGINE" CONTENENTI I VECCHI MESSAGGI
	for (var x=0; x<Mostra.PageCount; x++)
	{
		if (pagina == (x + 1))
		{
			Response.Write("[" + (x + 1) + "] ");
		}
		else
		{
			Response.Write("[<a href=\"guestbook.asp?pagina=" + (x + 1) + "\">" + (x + 1) + "</a>] ");
		}
	}
%>
</p>

<div align="center">

  <a href="rientro.swf" target="_self"><font face="sans-serif">Torna alla 
  Home Page</font></a>

</div>
<p align="center">
	<form name="login" method="post" action="guestbook.asp?azione=<%Session("amministratore") == null ? Response.Write("Login") : Response.Write("Logout")%>">
		<%if (Session("amministratore") == null) {%>
		<input type="password" name="password">
		<%}%>
		<input type="submit" value="<%Session("amministratore") == null ? Response.Write("Login") : Response.Write("Logout")%>">
	</form>
</p>

</body>
</html>
<%connessione.Close()%>